La plantilla std::is_abstract de C++ STL se usa para verificar si el tipo es un tipo de clase abstracto o no. Devuelve un valor booleano que muestra lo mismo.
Sintaxis :
template < class T > struct is_abstract;
Parámetro : esta plantilla contiene un solo parámetro T (clase de rasgo) para verificar si T es un tipo de clase abstracta o no.
Valor devuelto : esta plantilla devuelve un valor booleano como se muestra a continuación:
- Verdadero : si el tipo es una clase abstracta.
- Falso : si el tipo es una clase no abstracta.
Los siguientes programas ilustran la plantilla std::is_abstract en C++ STL:
Programa 1 :
// C++ program to illustrate // std::is_abstract template #include <iostream> #include <type_traits> using namespace std; struct gfg { int m; }; struct sam { virtual void foo() = 0; }; class raj : sam { }; int main() { cout << boolalpha; cout << "is_abstract:" << '\n'; cout << "gfg:" << is_abstract<gfg>::value << '\n'; cout << "sam:" << is_abstract<sam>::value << '\n'; cout << "raj:" << is_abstract<raj>::value << '\n'; return 0; }
Programa 2 :
// C++ program to illustrate // std::is_abstract template #include <iostream> #include <type_traits> using namespace std; struct gfg { virtual void foo(); }; class raj { virtual void foo() = 0; }; struct sam : raj { }; class geek { virtual void foo(); }; int main() { cout << std::boolalpha; cout << "is_abstract:" << '\n'; cout << "gfg:" << is_abstract<gfg>::value << '\n'; cout << "raj:" << is_abstract<raj>::value << '\n'; cout << "sam:" << is_abstract<sam>::value << '\n'; cout << "geek:" << is_abstract<geek>::value << '\n'; return 0; }
Publicación traducida automáticamente
Artículo escrito por rajasethupathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA