9#ifndef BOOST_CLBL_TRTS_ADD_MEMBER_VOLATILE_HPP
10#define BOOST_CLBL_TRTS_ADD_MEMBER_VOLATILE_HPP
14namespace boost {
namespace callable_traits {
27#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
33 detail::abominable_functions_not_supported_on_this_compiler,
34 this_compiler_doesnt_support_abominable_function_types>,
38 member_qualifiers_are_illegal_for_this_type>>;
43 member_qualifiers_are_illegal_for_this_type>;
49 template<
typename T,
typename = std::false_type>
54 add_member_volatile_t<T>, detail::dummy>::type>
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
typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_volatile, member_qualifiers_are_illegal_for_this_type > add_member_volatile_t
add_member_volatile_t< T > type