diff options
Diffstat (limited to '3rdParty/Boost/src/boost/function_types/result_type.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/function_types/result_type.hpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/function_types/result_type.hpp b/3rdParty/Boost/src/boost/function_types/result_type.hpp new file mode 100644 index 0000000..1fcaba6 --- /dev/null +++ b/3rdParty/Boost/src/boost/function_types/result_type.hpp @@ -0,0 +1,50 @@ + +// (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 <boost/blank.hpp> +#include <boost/mpl/if.hpp> + +#include <boost/mpl/aux_/lambda_support.hpp> +#include <boost/type_traits/detail/template_arity_spec.hpp> + +#include <boost/mpl/at.hpp> + +#include <boost/function_types/is_callable_builtin.hpp> +#include <boost/function_types/components.hpp> + +namespace boost +{ + namespace function_types + { + template< typename T > struct result_type; + + namespace detail + { + template<typename T> struct result_type_impl + : mpl::at_c + < typename function_types::components<T>::types, 0 > + { }; + } + + template<typename T> struct result_type + : mpl::if_ + < function_types::is_callable_builtin<T> + , detail::result_type_impl<T>, boost::blank + >::type + { + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,result_type,(T)) + }; + } + BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::result_type) +} + +#endif + |