11 #ifndef ASIO_TRAITS_STATIC_QUERY_HPP 12 #define ASIO_TRAITS_STATIC_QUERY_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_VARIABLE_TEMPLATES) \ 25 && defined(ASIO_HAS_WORKING_EXPRESSION_SFINAE) 26 # define ASIO_HAS_DEDUCED_STATIC_QUERY_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);
50 ASIO_STATIC_CONSTEXPR(
bool, is_noexcept =
false);
53 template <
typename T,
typename Property,
typename =
void>
56 is_same<T, typename decay<T>::type>::value
57 && is_same<Property, typename decay<Property>::type>::value,
60 typename decay<T>::type,
61 typename decay<Property>::type>
66 #if defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) 68 template <
typename T,
typename Property>
71 decltype(decay<Property>::type::template static_query_v<T>)
74 ASIO_STATIC_CONSTEXPR(
bool, is_valid =
true);
76 using result_type = decltype(
77 decay<Property>::type::template static_query_v<T>);
79 ASIO_STATIC_CONSTEXPR(
bool, is_noexcept =
80 noexcept(decay<Property>::type::template static_query_v<T>));
82 static ASIO_CONSTEXPR result_type value() noexcept(is_noexcept)
84 return decay<Property>::type::template static_query_v<T>;
88 #endif // defined(ASIO_HAS_DEDUCED_STATIC_QUERY_TRAIT) 93 template <
typename T,
typename Property,
typename>
98 template <
typename T,
typename Property,
typename>
99 struct static_query : static_query_default<T, Property>
106 #include "asio/detail/pop_options.hpp" 108 #endif // ASIO_TRAITS_STATIC_QUERY_HPP Definition: static_query.hpp:42
Definition: static_query.hpp:54
Definition: static_query.hpp:47
Definition: any_io_executor.hpp:28
Definition: static_query.hpp:39