// Boost.TypeErasure library // // Copyright 2012 Steven Watanabe // // 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) // // $Id$ #include #include #include #include #include namespace mpl = boost::mpl; using namespace boost::type_erasure; BOOST_MPL_ASSERT((is_subconcept, typeid_<> >)); BOOST_MPL_ASSERT_NOT((is_subconcept, incrementable<> >)); BOOST_MPL_ASSERT_NOT((is_subconcept, incrementable<> >, typeid_<> >)); BOOST_MPL_ASSERT_NOT((is_subconcept, incrementable<> >, incrementable<> >)); BOOST_MPL_ASSERT((is_subconcept, mpl::vector, incrementable<> > >)); BOOST_MPL_ASSERT((is_subconcept, mpl::vector, incrementable<> > >)); BOOST_MPL_ASSERT((is_subconcept, incrementable<> >, mpl::vector, typeid_<> > >)); BOOST_MPL_ASSERT((is_subconcept, typeid_<_b>, mpl::map > >)); BOOST_MPL_ASSERT_NOT((is_subconcept, incrementable<_b>, mpl::map > >)); BOOST_MPL_ASSERT_NOT((is_subconcept, incrementable<_a> >, typeid_<_b>, mpl::map > >)); BOOST_MPL_ASSERT_NOT((is_subconcept, incrementable<_a> >, incrementable<_b>, mpl::map > >)); BOOST_MPL_ASSERT((is_subconcept, mpl::vector, incrementable<_b> >, mpl::map > >)); BOOST_MPL_ASSERT((is_subconcept, mpl::vector, incrementable<_b> >, mpl::map > >)); BOOST_MPL_ASSERT((is_subconcept, incrementable<_a> >, mpl::vector, typeid_<_b> >, mpl::map > >));