9#ifndef BOOST_CLBL_TRTS_ARGS_HPP
10#define BOOST_CLBL_TRTS_ARGS_HPP
14namespace boost {
namespace callable_traits {
23template<
typename T,
template<
class...>
class Container = std::tuple>
29 cannot_expand_the_parameter_list_of_first_template_argument>;
33 template<
typename T,
template<
class...>
class Container,
34 typename = std::false_type>
37 template<
typename T,
template<
class...>
class Container>
39 args_t<T, Container>, detail::dummy>::type>
48 template<
class...>
class Container = std::tuple>
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 std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
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::traits< detail::shallow_decay< T > >::template expand_args< Container >, cannot_expand_the_parameter_list_of_first_template_argument > args_t
args_t< T, Container > type