// (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). //------------------------------------------------------------------------------ #ifndef BOOST_FT_RESULT_TYPE_HPP_INCLUDED #define BOOST_FT_RESULT_TYPE_HPP_INCLUDED #include #include #include #include #include #include #include namespace boost { namespace function_types { template< typename T > struct result_type; namespace detail { template struct result_type_impl : mpl::at_c < typename function_types::components::types, 0 > { }; } template struct result_type : mpl::if_ < function_types::is_callable_builtin , detail::result_type_impl, boost::blank >::type { BOOST_MPL_AUX_LAMBDA_SUPPORT(1,result_type,(T)) }; } BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::result_type) } #endif