[/ Copyright 2009 John Maddock. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt). ] [section:is_virtual_base_of is_virtual_base_of] template struct is_virtual_base_of : public __tof {}; __inherit If Base is a virtual base class of type Derived then inherits from __true_type, otherwise inherits from __false_type. Types `Base` and `Derived` must not be incomplete types. __std_ref 10. __header ` #include ` or ` #include ` [all_compilers] [note There are a small number of cases where it's simply not possible for this trait to work, and where attempting to instantiate the trait will cause compiler errors (see bug reports [@https://svn.boost.org/trac/boost/ticket/3730 #3730] and [@https://svn.boost.org/trac/boost/ticket/11323 11323]). Further more the issues may well be compiler specific. In this situation the user should supply a full specialization of the trait to work around the problem.] __examples [:Given: ` class Base{}; class Derived : public virtual Base{};` ] [:`is_virtual_base_of` inherits from `__true_type`.] [:`is_virtual_base_of::type` is the type `__true_type`.] [:`is_virtual_base_of::value` is an integral constant expression that evaluates to /true/.] [:`is_virtual_base_of::value` is an integral constant expression that evaluates to /true/.] [:`is_virtual_base_of::value` is an integral constant expression that evaluates to /false/.] [:`is_virtual_base_of::value_type` is the type `bool`.] [endsect]