int main() { // You can always instantiate without compiler errors BOOST_TTI_HAS_TYPE_GEN(AnIntType)<AnotherType> aVar1; BOOST_TTI_HAS_TYPE_GEN(NoOtherType)<AType> aVar2; // Compile time asserts BOOST_MPL_ASSERT((BOOST_TTI_HAS_TYPE_GEN(AnIntType)<AType>)); BOOST_MPL_ASSERT((BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)<AType>)); BOOST_MPL_ASSERT((NameStruct<AType>)); BOOST_MPL_ASSERT((BOOST_TTI_HAS_TYPE_GEN(BType)<AType>)); BOOST_MPL_ASSERT((TheInteger<AType::BType>)); BOOST_MPL_ASSERT((BOOST_TTI_HAS_TYPE_GEN(CType)<AType::BType>)); BOOST_MPL_ASSERT((BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)<AType::BType::CType>)); BOOST_MPL_ASSERT((SomethingElse<AnotherType>)); return 0; }
int main() { BOOST_TEST(BOOST_TTI_HAS_TYPE_GEN(AnIntType)<AType>::value); BOOST_TEST(BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)<AType>::value); BOOST_TEST(NameStruct<AType>::value); BOOST_TEST(BOOST_TTI_HAS_TYPE_GEN(BType)<AType>::value); BOOST_TEST(TheInteger<AType::BType>::value); BOOST_TEST(BOOST_TTI_HAS_TYPE_GEN(CType)<AType::BType>::value); BOOST_TEST(BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)<AType::BType::CType>::value); BOOST_TEST(SomethingElse<AnotherType>::value); BOOST_TEST(!BOOST_TTI_HAS_TYPE_GEN(NoOtherType)<AnotherType>::value); return boost::report_errors(); }
// (C) Copyright Edward Diener 2011 // Use, modification and distribution are subject to 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). #include "test_has_type_ct.hpp" #include <boost/detail/lightweight_test.hpp> int main() { BOOST_TEST((BOOST_TTI_HAS_TYPE_GEN(AnIntType)<AType,int>::value)); BOOST_TEST((NameStruct<AType,AType::AStructType>::value)); BOOST_TEST((BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)<AType,int &>::value)); BOOST_TEST((BOOST_TTI_HAS_TYPE_GEN(BType)<AType,AType::BType>::value)); BOOST_TEST((TheInteger<AType::BType,int>::value)); BOOST_TEST((BOOST_TTI_HAS_TYPE_GEN(CType)<AType::BType,AType::BType::CType>::value)); BOOST_TEST((BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)<AType::BType::CType,int>::value)); BOOST_TEST((SomethingElse<AnotherType,AType::AnIntType>::value)); BOOST_TEST((!BOOST_TTI_HAS_TYPE_GEN(NoOtherType)<AnotherType,double>::value)); return boost::report_errors(); }