1 | |
2 | // (C) Copyright Edward Diener 2011 |
3 | // Use, modification and distribution are subject to the Boost Software License, |
4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at |
5 | // http://www.boost.org/LICENSE_1_0.txt). |
6 | |
7 | #include "test_has_mem_data.hpp" |
8 | #include <boost/detail/lightweight_test.hpp> |
9 | |
10 | int main() |
11 | { |
12 | |
13 | BOOST_TEST((BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)<AType,int>::value)); |
14 | BOOST_TEST((BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)<AnotherType,long>::value)); |
15 | BOOST_TEST((BOOST_TTI_HAS_MEMBER_DATA_GEN(aMember)<AnotherType,bool>::value)); |
16 | BOOST_TEST((!BOOST_TTI_HAS_MEMBER_DATA_GEN(aMember)<AnotherType,int>::value)); |
17 | BOOST_TEST((CMember<AnotherType,bool>::value)); |
18 | BOOST_TEST((!BOOST_TTI_HAS_MEMBER_DATA_GEN(someDataMember)<AType,short>::value)); |
19 | BOOST_TEST((BOOST_TTI_HAS_MEMBER_DATA_GEN(IntBT)<AType,AType::BType>::value)); |
20 | BOOST_TEST((NestedData<AType,AType::BType::CType>::value)); |
21 | BOOST_TEST((AOther<AnotherType,AType>::value)); |
22 | BOOST_TEST((BOOST_TTI_HAS_MEMBER_DATA_GEN(ONestStr)<AnotherType,AType::AStructType>::value)); |
23 | |
24 | BOOST_TEST((CUb<AType::BType::CType::CTypeUnion,bool>::value)); |
25 | |
26 | |
27 | // Test enclosing class as non-class type |
28 | |
29 | BOOST_TEST((!CMember<bool,bool>::value)); |
30 | BOOST_TEST((!BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)<int,long>::value)); |
31 | BOOST_TEST((!BOOST_TTI_HAS_MEMBER_DATA_GEN(IntBT)<AType &,AType::BType>::value)); |
32 | BOOST_TEST((!AOther<double *,AType>::value)); |
33 | |
34 | return boost::report_errors(); |
35 | |
36 | } |
37 | |