La plantilla std::is_polymorphic de C++ STL se utiliza para comprobar si el tipo es un tipo de clase polimórfica o no. Devuelve un valor booleano que muestra lo mismo.
Sintaxis :
template < class T > struct is_polymorphic;
Parámetro : esta plantilla contiene un solo parámetro T (clase de rasgo) para verificar si T es un tipo de clase polimórfica o no.
Valor de retorno : esta plantilla devuelve un valor booleano como se muestra a continuación:
- Verdadero : si el tipo es una clase polimórfica.
- Falso : si el tipo es una clase no polimórfica.
Los siguientes programas ilustran la plantilla std::is_polymorphic en C++ STL:
Programa 1 :
// C++ program to illustrate // std::is_polymorphic template #include <iostream> #include <type_traits> using namespace std; struct gfg { virtual void foo(); }; struct geeks : gfg { }; class raj { virtual void foo() = 0; }; struct sam : raj { }; int main() { cout << boolalpha; cout << "is_polymorphic:" << '\n'; cout << "gfg:" << is_polymorphic<gfg>::value << '\n'; cout << "geeks:" << is_polymorphic<geeks>::value << '\n'; cout << "raj:" << is_polymorphic<raj>::value << '\n'; cout << "sam:" << is_polymorphic<sam>::value << '\n'; return 0; }
Producción:
is_polymorphic: gfg:true geeks:true raj:true sam:true
Programa 2 :
// C++ program to illustrate // std::is_polymorphic 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_polymorphic:" << '\n'; cout << "gfg:" << is_polymorphic<gfg>::value << '\n'; cout << "sam:" << is_polymorphic<sam>::value << '\n'; cout << "raj:" << is_polymorphic<raj>::value << '\n'; return 0; }
Producción:
is_polymorphic: gfg:false sam:true raj: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