• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 // Copyright Aleksey Gurtovoy 2000-2004
3 //
4 // Distributed under the Boost Software License, Version 1.0.
5 // (See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt)
7 //
8 // See http://www.boost.org/libs/mpl for documentation.
9 
10 // $Id$
11 // $Date$
12 // $Revision$
13 
14 #include <boost/mpl/is_placeholder.hpp>
15 #include <boost/mpl/placeholders.hpp>
16 #include <boost/mpl/aux_/test.hpp>
17 
18 #include <boost/preprocessor/repeat.hpp>
19 #include <boost/preprocessor/inc.hpp>
20 #include <boost/preprocessor/cat.hpp>
21 
22 #define AUX_IS_PLACEHOLDER_TEST(unused1, n, unused2) \
23     { MPL_ASSERT(( is_placeholder< \
24           BOOST_PP_CAT(_,BOOST_PP_INC(n)) \
25         > )); } \
26 /**/
27 
MPL_TEST_CASE()28 MPL_TEST_CASE()
29 {
30     MPL_ASSERT_NOT(( is_placeholder<int> ));
31     MPL_ASSERT_NOT(( is_placeholder<UDT> ));
32     MPL_ASSERT_NOT(( is_placeholder<incomplete> ));
33     MPL_ASSERT_NOT(( is_placeholder<abstract> ));
34     MPL_ASSERT_NOT(( is_placeholder<noncopyable> ));
35     MPL_ASSERT(( is_placeholder<_> ));
36 
37     BOOST_PP_REPEAT(
38           BOOST_MPL_LIMIT_METAFUNCTION_ARITY
39         , AUX_IS_PLACEHOLDER_TEST
40         , unused
41         )
42 }
43