// (C) Copyright Tobias Schwinger // // Use modification and distribution are subject to the boost Software License, // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). //------------------------------------------------------------------------------ #include #include #include #include #include #include #include namespace ft = boost::function_types; namespace mpl = boost::mpl; class C; typedef void func(C &); typedef int (C::* mem_func_ptr)(int); typedef ft::components func_components; typedef ft::components mfp_components; BOOST_MPL_ASSERT(( mpl::equal< func_components::types, mpl::vector > )); BOOST_MPL_ASSERT_RELATION( ::func_components::function_arity::value, ==, 1 ); BOOST_MPL_ASSERT(( boost::is_same< ft::function_type< mpl::vector >::type, func > )); BOOST_MPL_ASSERT(( mpl::equal< mfp_components::types, mpl::vector > )); BOOST_MPL_ASSERT_RELATION( ::mfp_components::function_arity::value, ==, 2 ); BOOST_MPL_ASSERT(( boost::is_same< ft::member_function_pointer< mpl::vector >::type, mem_func_ptr > ));