9#ifndef BOOST_CLBL_TRTS_APPLY_RETURN_HPP
10#define BOOST_CLBL_TRTS_APPLY_RETURN_HPP
14namespace boost {
namespace callable_traits {
21 template<
typename T,
typename R>
27 template<
typename... Args,
typename R>
41template<
typename T,
typename R>
46 invalid_types_for_apply_return>;
50 template<
typename T,
typename R,
typename = std::false_type>
53 template<
typename T,
typename R>
55 apply_return_t<T, R>, detail::dummy>::type>
62template<
typename T,
typename R>
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
detail::try_but_fail_if_invalid< typename detail::apply_return_helper< T, R >::type, invalid_types_for_apply_return > apply_return_t
#define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
#define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
typename detail::traits< T >::template apply_return< R > type
apply_return_t< T, R > type