Sdílet prostřednictvím


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

Viz také

<type_traits>
is_abstract – třída