Класс is_base_ofis_base_of Class

Проверяет, является ли один тип базовым для другого.Tests whether one type is base of another.

СинтаксисSyntax

template <class Base, class Derived>
struct is_base_of;

ПараметрыParameters

ИзBase
Базовый класс для проверки.The base class to test for.

ПолучаетDerived
Производный тип для проверки.The derived type to test for.

КомментарииRemarks

Экземпляр предиката типа содержит значение true, если базовый тип является базовым классом производного типа, в противном случае — значение false.An instance of the type predicate holds true if the type Base is a base class of the type Derived, otherwise it holds false.

ПримерExample

#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

ТребованияRequirements

Заголовок:<type_traits>Header: <type_traits>

Пространство имен: stdNamespace: std

См. также разделSee also

<type_traits><type_traits>
Класс is_convertibleis_convertible Class