diff options
author | Kevin Smith <git@kismith.co.uk> | 2013-01-12 18:41:34 (GMT) |
---|---|---|
committer | Swift Review <review@swift.im> | 2013-01-13 10:36:26 (GMT) |
commit | f3bc816af1b0d61452de973963e453bf3b3f95a2 (patch) | |
tree | e895f8afa3580e6cff6f5ad2017d45bf147a17c2 /3rdParty/Boost/src/boost/function_types/result_type.hpp | |
parent | 188fc285c6555eadd3c9d50ab8a94adcade78d89 (diff) | |
download | swift-f3bc816af1b0d61452de973963e453bf3b3f95a2.zip swift-f3bc816af1b0d61452de973963e453bf3b3f95a2.tar.bz2 |
Adding in the spirit Boost stuff
Change-Id: I4f127ce61667243b64081b0aa309028d5077045f
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 + |