La plantilla std::is_pointer de C++ STL se usa para verificar si el tipo dado es un puntero o no. Devuelve un valor booleano que muestra lo mismo.
Sintaxis :
template <class T > struct is_pointer;
Parámetro : esta plantilla acepta un solo parámetro T (clase de rasgo) para verificar si T es un puntero o no.
Valor devuelto : esta plantilla devuelve un valor booleano como se muestra a continuación:
- Verdadero : si el tipo es un puntero.
- Falso : si el tipo no es un puntero.
Los siguientes programas ilustran la plantilla std::is_pointer en C++ STL:
Programa 1 :
// C++ program to illustrate // is_pointer template #include <iostream> #include <type_traits> using namespace std; // main program class GFG { }; int main() { cout << boolalpha; cout << "is_pointer:" << endl; cout << "GFG: " << is_pointer<GFG>::value << '\n'; cout << "GFG*: " << is_pointer<GFG*>::value << '\n'; cout << "GFG&: " << is_pointer<GFG&>::value << '\n'; cout << "nullptr_t: " << is_pointer<nullptr_t>::value << '\n'; return 0; }
Producción:
is_pointer: GFG: false GFG*: true GFG&: false nullptr_t: false
Programa 2 :
// C++ program to illustrate // is_pointer template #include <iostream> #include <type_traits> using namespace std; // main program int main() { cout << boolalpha; cout << "is_pointer:" << endl; cout << "int: " << is_pointer<int>::value << '\n'; cout << "int *: " << is_pointer<int*>::value << '\n'; cout << "int **: " << is_pointer<int**>::value << '\n'; cout << "int ***: " << is_pointer<int***>::value << '\n'; return 0; }
Producción:
is_pointer: int: false int *: true int **: true int ***: true
Programa 3 :
// C++ program to illustrate // is_pointer template #include <iostream> #include <type_traits> using namespace std; // main program int main() { cout << boolalpha; cout << "is_pointer:" << endl; cout << "int *&: " << is_pointer<int*&>::value << '\n'; cout << "int *[10]: " << is_pointer<int * [10]>::value << '\n'; cout << "float *: " << is_pointer<float*>::value << '\n'; cout << "int[10]:" << is_pointer<int[10]>::value << '\n'; return 0; }
Producción:
is_pointer: int *&: false int *[10]: false float *: true int[10]:false
Publicación traducida automáticamente
Artículo escrito por rajasethupathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA