// (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_DETAIL_TO_SEQUENCE_HPP_INCLUDED #define BOOST_FT_DETAIL_TO_SEQUENCE_HPP_INCLUDED #include #include #include #include #include #include namespace boost { namespace function_types { namespace detail { // wrap first arguments in components, if callable builtin type template struct to_sequence { typedef typename mpl::eval_if < is_callable_builtin , to_sequence< components > , mpl::identity< T > >::type type; }; #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION // reduce template instantiations, if possible template struct to_sequence< components > { typedef typename components::types type; }; #endif } } } // namespace ::boost::function_types::detail #endif