|Reply to:||Detlef Vollmann, email@example.com|
|Audience:||SG1, LEWG, WG21|
The Networking TS grew out of Boost::ASIO and has got a lot of usage experience as part of Boost and in standalone implementations of the TS. Most of the Networking TS is uncontroversial.
One specific part of the Networking TS however clashes with the executor work in SG1. The executor work from SG1 is not yet ready to be merged into the C++ working paper. So this part of the Networking TS should not be merged. But most of the Networking TS can work without an explicitly specified executor model. This paper proposes to merge the executor independent parts of the Networking TS into the C++ working paper and solve any open issues on the Networking TS inside the C++ working paper.
The proposal is to merge the Networking TS into the C++ working paper with the following changes:
Move the contents of the namespace
std::experimental to namespace
Rename the headers
From table 3 remove
<executor>([async]) remove all but:
async_result, but remove specializations with
From [async.reqmts.async]p1 remove
io_context ([io__context]) change paragraph 6 remove
get_executor, and ", and the
io_context::executor_type copy constructors, member functions and comparison operators,".
From table 17 ([buffer.stream.reqmts.asyncreadstream]) and table 19 ([buffer.stream.reqmts.asyncwritestream]) remove the
basic_socket_acceptor ([socket.acceptor]) in the
accept functions that don't take an
io_context& as argument replace in the Returns clause