Collapse the table of content
Expand the table of content
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

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft