11 #ifndef ASIO_TRAITS_QUERY_STATIC_CONSTEXPR_MEMBER_HPP 12 #define ASIO_TRAITS_QUERY_STATIC_CONSTEXPR_MEMBER_HPP 14 #if defined(_MSC_VER) && (_MSC_VER >= 1200) 16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) 18 #include "asio/detail/config.hpp" 19 #include "asio/detail/type_traits.hpp" 21 #if defined(ASIO_HAS_DECLTYPE) \ 22 && defined(ASIO_HAS_NOEXCEPT) \ 23 && defined(ASIO_HAS_CONSTEXPR) \ 24 && defined(ASIO_HAS_CONSTANT_EXPRESSION_SFINAE) \ 25 && defined(ASIO_HAS_WORKING_EXPRESSION_SFINAE) 26 # define ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT 1 27 #endif // defined(ASIO_HAS_DECLTYPE) 33 #include "asio/detail/push_options.hpp" 38 template <
typename T,
typename Property,
typename =
void>
41 template <
typename T,
typename Property,
typename =
void>
49 ASIO_STATIC_CONSTEXPR(
bool, is_valid =
false);
52 template <
typename T,
typename Property,
typename =
void>
55 is_same<T, typename decay<T>::type>::value
56 && is_same<Property, typename decay<Property>::type>::value,
57 no_query_static_constexpr_member,
58 traits::query_static_constexpr_member<
59 typename decay<T>::type,
60 typename decay<Property>::type>
65 #if defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT) 67 template <
typename T,
typename Property>
70 (static_cast<void>(T::query(Property{})), true)
73 ASIO_STATIC_CONSTEXPR(
bool, is_valid =
true);
75 using result_type = decltype(T::query(Property{}));
77 ASIO_STATIC_CONSTEXPR(
bool, is_noexcept =
78 noexcept(T::query(Property{})));
80 static ASIO_CONSTEXPR result_type value() noexcept(is_noexcept)
82 return T::query(Property{});
86 #endif // defined(ASIO_HAS_DEDUCED_QUERY_STATIC_CONSTEXPR_MEMBER_TRAIT) 91 template <
typename T,
typename Property,
typename>
92 struct query_static_constexpr_member_default :
97 template <
typename T,
typename Property,
typename>
98 struct query_static_constexpr_member :
99 query_static_constexpr_member_default<T, Property>
106 #include "asio/detail/pop_options.hpp" 108 #endif // ASIO_TRAITS_QUERY_STATIC_CONSTEXPR_MEMBER_HPP Definition: query_static_constexpr_member.hpp:53
Definition: query_static_constexpr_member.hpp:39
Definition: query_static_constexpr_member.hpp:47
Definition: query_static_constexpr_member.hpp:42
Definition: any_io_executor.hpp:28