is_base_of – třída
Testuje, jestli je jeden typ základem jiného typu.
Syntaxe
template <class Base, class Derived>
struct is_base_of;
Parametry
Základna
Základní třída, pro která se má testovat.
Odvozený
Odvozený typ, pro který se má testovat.
Poznámky
Instance predikátu typu obsahuje hodnotu true, pokud je typ Base základní třídou typu Odvozený, jinak obsahuje hodnotu false.
Příklad
#include <type_traits>
#include <iostream>
struct base
{
int val;
};
struct derived
: public base
{
};
int main()
{
std::cout << "is_base_of<base, base> == " << std::boolalpha
<< std::is_base_of<base, base>::value << std::endl;
std::cout << "is_base_of<base, derived> == " << std::boolalpha
<< std::is_base_of<base, derived>::value << std::endl;
std::cout << "is_base_of<derived, base> == " << std::boolalpha
<< std::is_base_of<derived, base>::value << std::endl;
return (0);
}
is_base_of<base, base> == true
is_base_of<base, derived> == true
is_base_of<derived, base> == false
Požadavky
Header:<type_traits>
Namespace: std