/*============================================================================= Copyright (c) 2016 Paul Fultz II result_type.hpp Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #ifndef BOOST_HOF_GUARD_RESULT_TYPE_HPP #define BOOST_HOF_GUARD_RESULT_TYPE_HPP #include #include namespace boost { namespace hof { namespace detail { template struct function_result_type {}; template struct function_result_type::type> { typedef typename F::result_type result_type; }; template struct compose_function_result_type : function_result_type {}; template struct compose_function_result_type()(std::declval())) >::type> { typedef decltype(std::declval()(std::declval())) result_type; }; }}} // namespace boost::hof #endif