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