#include #include struct marker{}; template struct is_marked { BOOST_STATIC_CONSTANT(bool,value=(boost::is_base_and_derived::value)); }; struct foo { int x; }; template struct class_member{}; typedef is_marked > type1; int main() { bool b1=type1::value; return 0; }