Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize

is_base_of Class

Tests whether one type is base of another.

template<class Base, class Derived>
    struct is_base_of;


The base class to test for.


The derived type to test for.

An instance of the type predicate holds true if the type Base is a base class of the type Derived, otherwise it holds false.


#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

Header: <type_traits>

Namespace: std

© 2015 Microsoft