mirror of
https://github.com/boostorg/tti.git
synced 2026-01-25 06:42:25 +00:00
190 lines
5.1 KiB
C++
190 lines
5.1 KiB
C++
#include "TestMFHasTypeCheckTypedef.hpp"
|
|
#include <boost/detail/lightweight_test.hpp>
|
|
|
|
int main()
|
|
{
|
|
|
|
using namespace boost::mpl::placeholders;
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::has_type_AnIntType<_,_>,
|
|
boost::mpl::identity<AType>,
|
|
boost::mpl::identity<int>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::NameStruct<_,_>,
|
|
boost::mpl::identity<AType>,
|
|
tti::member_type_AStructType<AType>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::has_type_AnIntTypeReference<_,_>,
|
|
boost::mpl::identity<AType>,
|
|
boost::mpl::identity<int &>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::has_type_BType<_,_>,
|
|
boost::mpl::identity<AType>,
|
|
tti::member_type_BType<AType>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::TheInteger<_,_>,
|
|
tti::member_type_BType<AType>,
|
|
boost::mpl::identity<int>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::has_type_CType<_,_>,
|
|
tti::member_type_BType<AType>,
|
|
tti::mf_member_type
|
|
<
|
|
tti::member_type_CType<_>,
|
|
tti::member_type_BType<AType>
|
|
>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::has_type_AnotherIntegerType<_,_>,
|
|
tti::mf_member_type
|
|
<
|
|
tti::mtfc_member_type_CType,
|
|
tti::member_type_BType<AType>
|
|
>,
|
|
boost::mpl::identity<int>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::SomethingElse<_,_>,
|
|
boost::mpl::identity<AnotherType>,
|
|
tti::member_type_AnIntType<AType>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((!tti::mf_has_type
|
|
<
|
|
tti::has_type_NoOtherType<_,_>,
|
|
boost::mpl::identity<AnotherType>,
|
|
boost::mpl::identity<double>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::mtfc_has_type_AnIntType,
|
|
boost::mpl::identity<AType>,
|
|
boost::mpl::identity<int>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::MFunctionNameStruct,
|
|
boost::mpl::identity<AType>,
|
|
tti::member_type_AStructType<AType>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::mtfc_has_type_AnIntTypeReference,
|
|
boost::mpl::identity<AType>,
|
|
boost::mpl::identity<int &>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::mtfc_has_type_BType,
|
|
boost::mpl::identity<AType>,
|
|
tti::member_type_BType<AType>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::MFCTheInteger,
|
|
tti::member_type_BType<AType>,
|
|
boost::mpl::identity<int>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::mtfc_has_type_CType,
|
|
tti::member_type_BType<AType>,
|
|
tti::mf_member_type
|
|
<
|
|
tti::member_type_CType<_>,
|
|
tti::member_type_BType<AType>
|
|
>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::mtfc_has_type_AnotherIntegerType,
|
|
tti::mf_member_type
|
|
<
|
|
tti::mtfc_member_type_CType,
|
|
tti::member_type_BType<AType>
|
|
>,
|
|
boost::mpl::identity<int>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((tti::mf_has_type
|
|
<
|
|
tti::FClassSomethingElse,
|
|
boost::mpl::identity<AnotherType>,
|
|
tti::member_type_AnIntType<AType>
|
|
>
|
|
::value
|
|
));
|
|
|
|
BOOST_TEST((!tti::mf_has_type
|
|
<
|
|
tti::mtfc_has_type_NoOtherType,
|
|
boost::mpl::identity<AnotherType>,
|
|
boost::mpl::identity<double>
|
|
>
|
|
::value
|
|
));
|
|
|
|
return boost::report_errors();
|
|
|
|
}
|