| 171 | { |
| 172 | #if defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) |
| 173 | struct type |
| 174 | { |
| 175 | template <typename F> |
| 176 | auto execute(ASIO_MOVE_ARG(F) f) |
| 177 | noexcept( |
| 178 | noexcept( |
| 179 | declval<typename conditional<true, T, F>::type>().execute( |
| 180 | ASIO_MOVE_CAST(F)(f)) |
| 181 | ) |
| 182 | ) |
| 183 | -> decltype( |
| 184 | declval<typename conditional<true, T, F>::type>().execute( |
| 185 | ASIO_MOVE_CAST(F)(f)) |
| 186 | ); |
| 187 | }; |
| 188 | #else // defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) |
| 189 | typedef T type; |
| 190 | #endif // defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) |
no test coverage detected