std::is_member_pointer en C++ con ejemplos

La plantilla std::is_member_pointer de C++ STL está presente en el archivo de encabezado <type_traits> . La plantilla std::is_member_pointer de C++ STL se utiliza para comprobar si la T es un puntero a un miembro no estático o no. Devuelve el valor booleano verdadero si T es un puntero a un tipo de miembro no estático; de lo contrario, devuelve falso.

Archivo de cabecera:

#include<type_traits>

Clase de plantilla:

template<class T>
struct is_member_pointer
     : std::integral_constant < bool,
       is_member_object_pointer<T>::value 
    || is_member_function_pointer<T>::value> {};

Sintaxis:

std::is_member_pointer::value

Parámetros: la plantilla s td::is_member_pointer acepta un solo parámetro T (clase de rasgo) para verificar si T es un puntero a un miembro no estático o no.

Valor devuelto: esta plantilla devuelve una variable booleana como se muestra a continuación:

  • Verdadero: si el tipo T es un puntero a un miembro no estático.
  • Falso: si el tipo T no es un puntero a un miembro no estático.

A continuación se muestra el programa que ilustra la plantilla std::is_member_pointer en C/C++:

Programa:

// C++ program to illustrate
// std::is_member_pointer
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
  
// Driver Code
int main()
{
  
    // Empty Class GFG
    class GFG {
    };
  
    // Check if GFG::* is a member
    // pointer or not
    bool a = is_member_pointer<int(GFG::*)>::value;
    if (a) {
        cout << "GFG::* is a Member Pointer!"
             << endl;
    }
    else {
        cout << "GFG::* is not a Member Pointer!"
             << endl;
    }
  
    // Check if int is a member
    // pointer or not
    a = is_member_pointer<int(int)>::value;
    if (a) {
        cout << "int is a Member Pointer!"
             << endl;
    }
    else {
        cout << "int is not a Member Pointer!"
             << endl;
    }
  
    return 0;
}
Producción:

GFG::* is a Member Pointer!
int is not a Member Pointer!

Referencia: http://www.cplusplus.com/reference/type_traits/is_member_pointer/

Publicación traducida automáticamente

Artículo escrito por bansal_rtk_ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *