11 #ifndef ASIO_EXECUTION_DETAIL_AS_OPERATION_HPP 12 #define ASIO_EXECUTION_DETAIL_AS_OPERATION_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/memory.hpp" 20 #include "asio/detail/type_traits.hpp" 21 #include "asio/execution/detail/as_invocable.hpp" 22 #include "asio/execution/execute.hpp" 23 #include "asio/execution/set_error.hpp" 24 #include "asio/traits/start_member.hpp" 26 #include "asio/detail/push_options.hpp" 32 template <
typename Executor,
typename Receiver>
37 #if !defined(ASIO_HAS_MOVE) 38 asio::detail::shared_ptr<asio::detail::atomic_count> ref_count_;
39 #endif // !defined(ASIO_HAS_MOVE) 41 template <
typename E,
typename R>
42 explicit as_operation(ASIO_MOVE_ARG(E) e, ASIO_MOVE_ARG(R) r)
43 : ex_(ASIO_MOVE_CAST(E)(e)),
44 receiver_(ASIO_MOVE_CAST(R)(r))
45 #if !defined(ASIO_HAS_MOVE) 46 , ref_count_(
new asio::detail::atomic_count(1))
47 #endif // !defined(ASIO_HAS_MOVE) 51 void start() ASIO_NOEXCEPT
53 #if !defined(ASIO_NO_EXCEPTIONS) 56 #endif // !defined(ASIO_NO_EXCEPTIONS) 61 #
if !defined(ASIO_HAS_MOVE)
65 #if !defined(ASIO_NO_EXCEPTIONS) 69 #if defined(ASIO_HAS_STD_EXCEPTION_PTR) 74 std::current_exception());
75 #else // defined(ASIO_HAS_STD_EXCEPTION_PTR) 77 #endif // defined(ASIO_HAS_STD_EXCEPTION_PTR) 79 #endif // !defined(ASIO_NO_EXCEPTIONS) 87 #if !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) 89 template <
typename Executor,
typename Receiver>
93 ASIO_STATIC_CONSTEXPR(
bool, is_valid =
true);
94 ASIO_STATIC_CONSTEXPR(
bool, is_noexcept =
true);
95 typedef void result_type;
98 #endif // !defined(ASIO_HAS_DEDUCED_START_MEMBER_TRAIT) 103 #include "asio/detail/pop_options.hpp" 105 #endif // ASIO_EXECUTION_DETAIL_AS_OPERATION_HPP Definition: start_member.hpp:38
Definition: as_invocable.hpp:84
Definition: as_operation.hpp:33
Definition: handler_work.hpp:37
Definition: type_traits.hpp:128
Definition: any_io_executor.hpp:28