1 
2 // (C) Copyright Tobias Schwinger
3 //
4 // Use modification and distribution are subject to the boost Software License,
5 // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
6 
7 //------------------------------------------------------------------------------
8 
9 #include <boost/mpl/assert.hpp>
10 #include <boost/mpl/vector.hpp>
11 #include <boost/type_traits/is_same.hpp>
12 #include <boost/function_types/member_function_pointer.hpp>
13 
14 namespace ft = boost::function_types;
15 namespace mpl = boost::mpl;
16 using boost::is_same;
17 
18 class C;
19 typedef int (C::* expected)();
20 
21 BOOST_MPL_ASSERT((
22   is_same< ft::member_function_pointer< mpl::vector<int,C * const> >::type
23          ,  expected >
24 ));
25 
26 BOOST_MPL_ASSERT((
27   is_same< ft::member_function_pointer< mpl::vector<int,C * volatile> >::type
28          ,  expected >
29 ));
30 
31 BOOST_MPL_ASSERT((
32   is_same< ft::member_function_pointer< mpl::vector<int,C * const volatile> >::type
33          ,  expected >
34 ));
35 
36 
37 
38