10#ifndef BOOST_CLBL_TRTS_ADD_NOEXCEPT_HPP
11#define BOOST_CLBL_TRTS_ADD_NOEXCEPT_HPP
15namespace boost {
namespace callable_traits {
20#ifndef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
23 static_assert(std::is_same<T, detail::dummy>::value,
24 "noexcept types not supported by this configuration.");
29 static_assert(std::is_same<T, detail::dummy>::value,
30 "noexcept types not supported by this configuration.");
48 cannot_add_noexcept_to_this_type>;
52 template<
typename T,
typename = std::false_type>
53 struct add_noexcept_impl {};
56 struct add_noexcept_impl <T, typename
std::is_same<
57 add_noexcept_t<T>, detail::dummy>::type>
59 using type = add_noexcept_t<T>;
65struct add_noexcept : detail::add_noexcept_impl<T> {};
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
#define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
#define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)