[/ Copyright 2007 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_abstract is_abstract] template struct is_abstract : public __tof {}; __inherit If T is a (possibly cv-qualified) abstract type then inherits from __true_type, otherwise inherits from __false_type. __std_ref 10.3. __header ` #include ` or ` #include ` __compat The compiler must support DR337 (as of April 2005: GCC 3.4, VC++ 7.1 (and later), Intel C++ 7 (and later), and Comeau 4.3.2). Otherwise behaves the same as __is_polymorphic; this is the "safe fallback position" for which polymorphic types are always regarded as potentially abstract. The macro BOOST_NO_IS_ABSTRACT is used to signify that the implementation is buggy, users should check for this in their own code if the "safe fallback" is not suitable for their particular use-case. __examples [:Given: `class abc{ virtual ~abc() = 0; };` ] [:`is_abstract` inherits from `__true_type`.] [:`is_abstract::type` is the type `__true_type`.] [:`is_abstract::value` is an integral constant expression that evaluates to /true/.] [:`is_abstract::value_type` is the type `bool`.] [endsect]