1 | // Copyright (C) 2006 Arkadiy Vertleyb |
2 | // Use, modification and distribution is subject to the Boost Software |
3 | // License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt) |
4 | |
5 | #include "test.hpp" |
6 | #include <climits> |
7 | |
8 | #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() |
9 | |
10 | struct x; |
11 | BOOST_TYPEOF_REGISTER_TYPE(x) |
12 | |
13 | template< |
14 | class T, char c, unsigned short us, int i, unsigned long ul, |
15 | bool b1, bool b2, signed char sc, unsigned u> |
16 | struct Tpl |
17 | {}; |
18 | |
19 | BOOST_TYPEOF_REGISTER_TEMPLATE(Tpl, |
20 | (class) |
21 | (char) |
22 | (unsigned short) |
23 | (int) |
24 | (unsigned long) |
25 | (bool) |
26 | (bool) |
27 | (signed char) |
28 | (unsigned) |
29 | ) |
30 | |
31 | BOOST_STATIC_ASSERT((boost::type_of::test<Tpl<int, 5, 4, -3, 2, true, false, -1, 5> >::value)); |
32 | BOOST_STATIC_ASSERT((boost::type_of::test<Tpl<int, 1, 1, 0, ULONG_MAX, false, true, -1, 0> >::value)); |
33 | |