9 #ifndef BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED 10 #define BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED 14 #ifndef BOOST_IS_BASE_OF 28 #ifndef BOOST_IS_BASE_OF 29 #if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581)) \ 30 && !BOOST_WORKAROUND(__SUNPRO_CC , <= 0x540) \ 31 && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \ 32 && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) 113 template <
typename B,
typename D>
121 #if !BOOST_WORKAROUND(BOOST_MSVC, == 1310) 122 template <
typename T>
131 template<
typename B,
typename D>
134 #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) 135 #pragma warning(push) 136 #pragma warning(disable:6334) 147 #if !BOOST_WORKAROUND(BOOST_MSVC, == 1310) 148 operator B
const volatile *()
const;
150 operator B
const volatile *
const&()
const;
152 operator D const volatile *();
157 #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000) 167 template<
typename B,
typename D>
174 #define BOOST_BROKEN_IS_BASE_AND_DERIVED 178 template <
typename B,
typename D>
184 template <
bool ic1,
bool ic2,
bool iss>
187 template <
class T,
class U>
197 template <
class T,
class U>
204 template <
typename B,
typename D>
214 typedef typename selector::template rebind<ncvB,ncvD>
binder;
220 template <
typename B,
typename D>
232 :
public integral_constant<bool, (::boost::detail::is_base_and_derived_impl<Base, Derived>::value)> {};
238 #if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610)) 244 #endif // BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
is_base_and_derived_impl2< T, U > type
is_base_and_derived_impl3< T, U > type
#define BOOST_STATIC_ASSERT(...)
selector::template rebind< ncvB, ncvD > binder
is_base_and_derived_select< ::boost::is_class< B >::value,::boost::is_class< D >::value,::boost::is_same< ncvB, ncvD >::value > selector
remove_cv< D >::type ncvD
static type_traits::yes_type check_sig(D const volatile *, T)
#define BOOST_STATIC_CONSTANT(type, assignment)
remove_cv< B >::type ncvB