is_polymorphic – třída
Testuje, jestli typ obsahuje virtuální funkci.
Syntaxe
template <class Ty>
struct is_polymorphic;
Parametry
Ty
Typ, na který chcete odeslat dotaz.
Poznámky
Instance predikátu typu má hodnotu true, pokud typ Ty je třída, která deklaruje nebo dědí virtuální funkci, jinak obsahuje hodnotu false.
Příklad
// std__type_traits__is_polymorphic.cpp
// compile with: /EHsc
#include <type_traits>
#include <iostream>
struct trivial
{
int val;
};
struct throws
{
throws() throw(int)
{
}
throws(const throws&) throw(int)
{
}
throws& operator=(const throws&) throw(int)
{
}
virtual ~throws()
{
}
int val;
};
int main()
{
std::cout << "is_polymorphic<trivial> == " << std::boolalpha
<< std::is_polymorphic<trivial>::value << std::endl;
std::cout << "is_polymorphic<throws> == " << std::boolalpha
<< std::is_polymorphic<throws>::value << std::endl;
return (0);
}
is_polymorphic<trivial> == false
is_polymorphic<throws> == true
Požadavky
Header:<type_traits>
Namespace: std