La plantilla std::is_compound de C++ STL se usa para verificar si el tipo es un tipo compuesto o no. Devuelve un valor booleano que muestra lo mismo.
Sintaxis :
template < class T > struct is_compound;
Parámetro : esta plantilla contiene un solo parámetro T (clase de rasgo) para verificar si T es un tipo compuesto o no.
Valor devuelto : esta plantilla devuelve un valor booleano como se muestra a continuación:
- Verdadero : si el tipo es un tipo compuesto.
- Falso : si el tipo es un tipo no compuesto.
Los siguientes programas ilustran la plantilla is_compound en C++ STL:
Programa 1 :
// C++ program to illustrate // is_compound template #include <iostream> #include <type_traits> using namespace std; // main program struct GFG1 { }; union GFG2 { int var1; float var2; }; int main() { cout << boolalpha; cout << "is_compound:" << endl; cout << "GFG1: " << is_compound<GFG1>::value << endl; cout << "GFG2: " << is_compound<GFG2>::value << endl; cout << "int: " << is_compound<int>::value << endl; cout << "int*: " << is_compound<int*>::value << endl; return 0; }
Producción:
is_compound: GFG1: true GFG2: true int: false int*: true
Programa 2 :
// C++ program to illustrate // is_compound 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_compound:" << endl; cout << "GFG1: " << is_compound<GFG1>::value << endl; cout << "GFG2: " << is_compound<GFG2>::value << endl; cout << "int[10]: " << is_compound<int[10]>::value << endl; cout << "int &: " << is_compound<int&>::value << endl; cout << "char: " << is_compound<char>::value << endl; return 0; }
Producción:
is_compound: GFG1: true GFG2: true int[10]: true int &: true char: false
Programa 3 :
// C++ program to illustrate // is_compound template #include <iostream> #include <type_traits> using namespace std; // driver code int main() { class gfg { }; cout << boolalpha; cout << "is_compound:" << endl; cout << "int(gfg::*): " << is_compound<int(gfg::*)>::value << endl; cout << "float: " << is_compound<float>::value << endl; cout << "double: " << is_compound<double>::value << endl; cout << "int(int): " << is_compound<int(int)>::value << endl; return 0; }
Producción:
is_compound: int(gfg::*): true float: false double: false int(int): 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