La plantilla std::is_standard_layout de C++ STL se usa para verificar si el tipo es un diseño estándar o no. Devuelve un valor booleano que muestra lo mismo.
Sintaxis :
template < class T > struct is_standard_layout;
Parámetros : esta plantilla contiene un solo parámetro T (clase de rasgo) para verificar si T es un tipo de diseño estándar o no.
Valor devuelto : esta plantilla devuelve un valor booleano como se muestra a continuación:
- Verdadero : si el tipo es un tipo de diseño estándar.
- Falso : si el tipo es un tipo de diseño no estándar.
Los siguientes programas ilustran la plantilla std::is_standard_layout en C++ STL:
Programa 1 : Con Struct, Class y Union combinados.
// C++ program to illustrate // std::is_standard_layout template #include <iostream> #include <type_traits> using namespace std; // Class with local variable class gfg { int variab; }; // Structure with local variable struct sam { int variab; private: int variab_priv; }; // Empty union union raj { }; // Driver code int main() { cout << boolalpha; cout << "Is gfg class a standard layout: " << is_standard_layout<gfg>::value << '\n'; cout << "Is structure sam a standard layout: " << is_standard_layout<sam>::value << '\n'; cout << "Is union raj a standard layout: " << is_standard_layout<raj>::value << '\n'; cout << "Is datatype char a standard layout: " << is_standard_layout<char>::value << '\n'; cout << "Is integer array 'int a[10]' a standard layout: " << is_standard_layout<int[10]>::value << '\n'; return 0; }
Producción:
Is gfg class a standard layout: true Is structure sam a standard layout: false Is union raj a standard layout: true Is datatype char a standard layout: true Is integer array 'int a[10]' a standard layout: true
Programa 2 : Con Clase
// C++ program to illustrate // std::is_standard_layout template #include <iostream> #include <type_traits> using namespace std; // Class with local variable class gfg { int variab; }; // class with local variable class sam { int variab; private: int variab_priv; }; // Empty class class raj { }; // Driver code int main() { cout << boolalpha; cout << "Is gfg class a standard layout: " << is_standard_layout<gfg>::value << '\n'; cout << "Is structure sam a standard layout: " << is_standard_layout<sam>::value << '\n'; cout << "Is union raj a standard layout: " << is_standard_layout<raj>::value << '\n'; cout << "Is pointer 'int(gfg::*)' a standard layout: " << is_standard_layout<int(gfg::*)>::value << '\n'; cout << "Is pointer 'int *' a standard layout: " << is_standard_layout<int*>::value << '\n'; cout << "Is pointer 'nullptr_t' a standard layout: " << is_standard_layout<nullptr_t>::value << '\n'; return 0; }
Producción:
Is gfg class a standard layout: true Is structure sam a standard layout: true Is union raj a standard layout: true Is pointer 'int(gfg::*)' a standard layout: true Is pointer 'int *' a standard layout: true Is pointer 'nullptr_t' a standard layout: 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