| 196 | { |
| 197 | #if defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) |
| 198 | struct type |
| 199 | { |
| 200 | template <typename P> |
| 201 | auto query(P&& p) |
| 202 | noexcept( |
| 203 | noexcept( |
| 204 | declval<conditional_t<true, T, P>>().query(static_cast<P&&>(p)) |
| 205 | ) |
| 206 | ) |
| 207 | -> decltype( |
| 208 | declval<conditional_t<true, T, P>>().query(static_cast<P&&>(p)) |
| 209 | ); |
| 210 | }; |
| 211 | #else // defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) |
| 212 | typedef T type; |
| 213 | #endif // defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) |