Generated on 2019-10-29 from the Networking TS's draft LaTeX sources by cxxdraft-htmlgen. This is not an ISO publication.

Contents

List of Tables [tab][tab]

1Feature-test macro(s)[tab:info.features]
2Networking library summary[tab:summary]
3Template parameters and type requirements[tab:summary.requirements]
4Executor requirements[tab:async.reqmts.executor.requirements]
5ExecutionContext requirements[tab:async.reqmts.executioncontext.requirements]
6Associator requirements[tab:async.reqmts.associator.requirements]
7async_result specialization requirements[tab:async.async.result.requirements]
8associated_allocator specialization requirements[tab:async.assoc.alloc.requirements]
9associated_executor specialization requirements[tab:async.assoc.exec.requirements]
10async_result<use_future_t<ProtoAllocator>, Result(Args...)> semantics[tab:async.use.future.result.requirements]
11WaitTraits requirements[tab:timer.reqmts.waittraits.requirements]
12MutableBufferSequence requirements[tab:buffer.reqmts.mutablebuffersequence.requirements]
13ConstBufferSequence requirements[tab:buffer.reqmts.constbuffersequence.requirements]
14DynamicBuffer requirements[tab:buffer.reqmts.dynamicbuffer.requirements]
15Buffer type traits[tab:buffer.traits.requirements]
16SyncReadStream requirements[tab:buffer.stream.reqmts.syncreadstream.requirements]
17AsyncReadStream requirements[tab:buffer.stream.reqmts.asyncreadstream.requirements]
18SyncWriteStream requirements[tab:buffer.stream.reqmts.syncwritestream.requirements]
19AsyncWriteStream requirements[tab:buffer.stream.reqmts.asyncwritestream.requirements]
20CompletionCondition requirements[tab:buffer.stream.reqmts.completioncondition.requirements]
21Endpoint requirements[tab:socket.reqmts.endpoint.requirements]
22Endpoint requirements for extensible implementations[tab:socket.reqmts.endpoint.requirements.ext]
23EndpointSequence requirements[tab:socket.reqmts.endpointsequence.requirements]
24Protocol requirements[tab:socket.reqmts.protocol.requirements]
25Protocol requirements for extensible implementations[tab:socket.reqmts.protocol.requirements.ext]
26AcceptableProtocol requirements[tab:socket.reqmts.acceptableprotocol.requirements]
27GettableSocketOption requirements for extensible implementations[tab:socket.reqmts.gettablesocketoption.requirements]
28SettableSocketOption requirements for extensible implementations[tab:socket.reqmts.settablesocketoption.requirements]
29BooleanSocketOption requirements[tab:socket.reqmts.opt.bool.requirements]
30IntegerSocketOption requirements[tab:socket.reqmts.opt.int.requirements]
31IoControlCommand requirements for extensible implementations[tab:socket.reqmts.iocontrolcommand.requirements]
32ConnectCondition requirements[tab:socket.reqmts.connectcondition.requirements]
33socket_base constants[tab:socket.base.requirements]
34Socket options[tab:socket.opt.requirements]
35InternetProtocol requirements[tab:internet.reqmts.protocol.requirements]
36MulticastGroupSocketOption requirements[tab:internet.reqmts.opt.mcast.requirements]
37Resolver flags[tab:internet.resolver.base.requirements]
38Behavior of extensible ip::tcp implementations[tab:internet.tcp.requirements]
39Behavior of extensible ip::udp implementations[tab:internet.udp.requirements]
40Internet socket options[tab:internet.socket.opt.requirements]

1 Scope [scope][scope]

2 Normative references [references][references]

3 Terms and definitions [defs][defs]

3.1 host byte order [defs.host.byte.order]

3.2 network byte order [defs.net.byte.order]

3.3 synchronous operation [defs.sync.op]

3.4 asynchronous operation [defs.async.op]

4 General Principles [general][general]

4.1 Conformance [conformance]

4.1.1 POSIX conformance [conformance.9945]

4.1.2 Conditionally-supported features [conformance.conditional]

4.2 Acknowledgments [intro.ack]

5 Namespaces and headers [namespaces][namespaces]

6 Future plans (Informative) [plans][plans]

7 Feature test macros (Informative) [feature.test][feature.test]

8 Method of description (Informative) [description][description]

8.1 Structure of each clause [structure]

8.1.1 Detailed specifications [structure.specifications]

8.2 Other conventions [conventions]

8.2.1 Nested classes [nested.class]

9 Error reporting [err.report][err.report]

9.1 Synchronous operations [err.report.sync]

9.2 Asynchronous operations [err.report.async]

9.3 Error conditions [err.report.conditions]

9.4 Suppression of signals [err.report.signal]

10 Library summary [summary][summary]

11 Convenience header [convenience.hdr][convenience.hdr]

11.1 Header <experimental/net> synopsis [convenience.hdr.synop]

12 Forward declarations [fwd.decl][fwd.decl]

12.1 Header <experimental/netfwd> synopsis [fwd.decl.synop]

13 Asynchronous model [async][async]

13.1 Header <experimental/executor> synopsis [async.synop]

13.2 Requirements [async.reqmts]

13.2.1 Proto-allocator requirements [async.reqmts.proto.allocator]

13.2.2 Executor requirements [async.reqmts.executor]

13.2.3 Execution context requirements [async.reqmts.executioncontext]

13.2.4 Service requirements [async.reqmts.service]

13.2.5 Signature requirements [async.reqmts.signature]

13.2.6 Associator requirements [async.reqmts.associator]

13.2.7 Requirements on asynchronous operations [async.reqmts.async]

13.2.7.1 General asynchronous operation concepts [async.reqmts.async.concepts]

13.2.7.2 Completion tokens and handlers [async.reqmts.async.token]

13.2.7.3 Deduction of initiating function return type [async.reqmts.async.return.type]

13.2.7.4 Production of initiating function return value [async.reqmts.async.return.value]

13.2.7.5 Lifetime of initiating function arguments [async.reqmts.async.lifetime]

13.2.7.6 Non-blocking requirements on initiating functions [async.reqmts.async.non.blocking]

13.2.7.9 Completion handler executor [async.reqmts.async.handler.exec]

13.2.7.11 Allocation of intermediate storage [async.reqmts.async.alloc]

13.2.7.12 Execution of completion handler on completion of asynchronous operation [async.reqmts.async.completion]

13.2.7.13 Completion handlers and exceptions [async.reqmts.async.exceptions]

13.2.7.14 Composed asynchronous operations [async.reqmts.async.composed]

13.3 Class template async_result [async.async.result]

13.4 Class template async_completion [async.async.completion]

13.5 Class template associated_allocator [async.assoc.alloc]

13.5.1 associated_allocator members [async.assoc.alloc.members]

13.6 Function get_associated_allocator [async.assoc.alloc.get]

13.7 Class execution_context [async.exec.ctx]

13.7.1 execution_context constructor [async.exec.ctx.cons]

13.7.2 execution_context destructor [async.exec.ctx.dtor]

13.7.3 execution_context operations [async.exec.ctx.ops]

13.7.4 execution_context protected operations [async.exec.ctx.protected]

13.7.5 execution_context globals [async.exec.ctx.globals]

13.8 Class execution_context::service [async.exec.ctx.svc]

13.9 Class template is_executor [async.is.exec]

13.10 Executor argument tag [async.executor.arg]

13.11 uses_executor [async.uses.executor]

13.11.2 uses-executor construction [async.uses.executor.cons]

13.12 Class template associated_executor [async.assoc.exec]

13.12.1 associated_executor members [async.assoc.exec.members]

13.13 Function get_associated_executor [async.assoc.exec.get]

13.14 Class template executor_binder [async.exec.binder]

13.14.1 executor_binder constructors [async.exec.binder.cons]

13.14.2 executor_binder access [async.exec.binder.access]

13.14.3 executor_binder invocation [async.exec.binder.invocation]

13.14.4 Class template partial specialization async_result [async.exec.binder.async.result]

13.14.5 Class template partial specialization associated_allocator [async.exec.binder.assoc.alloc]

13.14.6 Class template partial specialization associated_executor [async.exec.binder.assoc.exec]

13.15 Function bind_executor [async.bind.executor]

13.16 Class template executor_work_guard [async.exec.work.guard]

13.16.1 executor_work_guard members [async.exec.work.guard.members]

13.17 Function make_work_guard [async.make.work.guard]

13.18 Class system_executor [async.system.exec]

13.18.1 system_executor operations [async.system.exec.ops]

13.18.2 system_executor comparisons [async.system.exec.comparisons]

13.19 Class system_context [async.system.context]

13.20 Class bad_executor [async.bad.exec]

13.21 Class executor [async.executor]

13.21.1 executor constructors [async.executor.cons]

13.21.2 executor assignment [async.executor.assign]

13.21.3 executor destructor [async.executor.dtor]

13.21.5 executor operations [async.executor.ops]

13.21.7 executor target access [async.executor.target]

13.21.9 executor specialized algorithms [async.executor.algo]

13.22 Function dispatch [async.dispatch]

13.23 Function post [async.post]

13.24 Function defer [async.defer]

13.25 Class template strand [async.strand]

13.25.1 strand constructors [async.strand.cons]

13.25.2 strand assignment [async.strand.assign]

13.25.3 strand destructor [async.strand.dtor]

13.25.4 strand operations [async.strand.ops]

13.26 Class template use_future_t [async.use.future]

13.26.1 use_future_t constructors [async.use.future.cons]

13.26.2 use_future_t members [async.use.future.members]

13.26.3 Partial class template specialization async_result for use_future_t [async.use.future.result]

13.27 Partial specialization of async_result for packaged_task [async.packaged.task.spec]

14 Basic I/O services [io_context][io_context]

14.1 Header <experimental/io_context> synopsis [io_context.synop]

14.3 Class io_context::executor_type [io_context.exec]

14.3.1 io_context::executor_type constructors [io_context.exec.cons]

14.3.2 io_context::executor_type assignment [io_context.exec.assign]

14.3.3 io_context::executor_type operations [io_context.exec.ops]

14.3.4 io_context::executor_type comparisons [io_context.exec.comparisons]

15 Timers [timer][timer]

15.1 Header <experimental/timer> synopsis [timer.synop]

15.2 Requirements [timer.reqmts]

15.2.1 Wait traits requirements [timer.reqmts.waittraits]

15.3 Class template wait_traits [timer.waittraits]

15.4 Class template basic_waitable_timer [timer.waitable]

15.4.1 basic_waitable_timer constructors [timer.waitable.cons]

15.4.2 basic_waitable_timer destructor [timer.waitable.dtor]

15.4.3 basic_waitable_timer assignment [timer.waitable.assign]

15.4.4 basic_waitable_timer operations [timer.waitable.ops]

16 Buffers [buffer][buffer]

16.1 Header <experimental/buffer> synopsis [buffer.synop]

16.2 Requirements [buffer.reqmts]

16.2.1 Mutable buffer sequence requirements [buffer.reqmts.mutablebuffersequence]

16.2.2 Constant buffer sequence requirements [buffer.reqmts.constbuffersequence]

16.2.4 Dynamic buffer requirements [buffer.reqmts.dynamicbuffer]

16.2.5 Requirements on read and write operations [buffer.reqmts.read.write]

16.3 Error codes [buffer.err]

16.4 Class mutable_buffer [buffer.mutable]

16.5 Class const_buffer [buffer.const]

16.6 Buffer type traits [buffer.traits]

16.7 Buffer sequence access [buffer.seq.access]

16.8 Function buffer_size [buffer.size]

16.9 Function buffer_copy [buffer.copy]

16.10 Buffer arithmetic [buffer.arithmetic]

16.11 Buffer creation functions [buffer.creation]

16.12 Class template dynamic_vector_buffer [buffer.dynamic.vector]

16.13 Class template dynamic_string_buffer [buffer.dynamic.string]

16.14 Dynamic buffer creation functions [buffer.dynamic.creation]

17 Buffer-oriented streams [buffer.stream][buffer.stream]

17.1 Requirements [buffer.stream.reqmts]

17.1.1 Buffer-oriented synchronous read stream requirements [buffer.stream.reqmts.syncreadstream]

17.1.2 Buffer-oriented asynchronous read stream requirements [buffer.stream.reqmts.asyncreadstream]

17.1.3 Buffer-oriented synchronous write stream requirements [buffer.stream.reqmts.syncwritestream]

17.1.4 Buffer-oriented asynchronous write stream requirements [buffer.stream.reqmts.asyncwritestream]

17.1.5 Completion condition requirements [buffer.stream.reqmts.completioncondition]

17.3 Class transfer_at_least [buffer.stream.transfer.at.least]

17.4 Class transfer_exactly [buffer.stream.transfer.exactly]

17.5 Synchronous read operations [buffer.read]

17.6 Asynchronous read operations [buffer.async.read]

17.7 Synchronous write operations [buffer.write]

17.8 Asynchronous write operations [buffer.async.write]

17.9 Synchronous delimited read operations [buffer.read.until]

17.10 Asynchronous delimited read operations [buffer.async.read.until]

18 Sockets [socket][socket]

18.1 Header <experimental/socket> synopsis [socket.synop]

18.2 Requirements [socket.reqmts]

18.2.1 Requirements on synchronous socket operations [socket.reqmts.sync]

18.2.2 Requirements on asynchronous socket operations [socket.reqmts.async]

18.2.4 Endpoint requirements [socket.reqmts.endpoint]

18.2.5 Endpoint sequence requirements [socket.reqmts.endpointsequence]

18.2.6 Protocol requirements [socket.reqmts.protocol]

18.2.7 Acceptable protocol requirements [socket.reqmts.acceptableprotocol]

18.2.8 Gettable socket option requirements [socket.reqmts.gettablesocketoption]

18.2.9 Settable socket option requirements [socket.reqmts.settablesocketoption]

18.2.10 Boolean socket options [socket.reqmts.opt.bool]

18.2.11 Integer socket options [socket.reqmts.opt.int]

18.2.12 I/O control command requirements [socket.reqmts.iocontrolcommand]

18.2.13 Connect condition requirements [socket.reqmts.connectcondition]

18.3 Error codes [socket.err]

18.4 Class socket_base [socket.base]

18.5 Socket options [socket.opt]

18.5.1 Class socket_base::linger [socket.opt.linger]

18.6 Class template basic_socket [socket.basic]

18.6.1 basic_socket constructors [socket.basic.cons]

18.6.2 basic_socket destructor [socket.basic.dtor]

18.6.3 basic_socket assignment [socket.basic.assign]

18.6.4 basic_socket operations [socket.basic.ops]

18.7 Class template basic_datagram_socket [socket.dgram]

18.7.1 basic_datagram_socket constructors [socket.dgram.cons]

18.7.2 basic_datagram_socket assignment [socket.dgram.assign]

18.7.3 basic_datagram_socket operations [socket.dgram.op]

18.8 Class template basic_stream_socket [socket.stream]

18.8.1 basic_stream_socket constructors [socket.stream.cons]

18.8.2 basic_stream_socket assignment [socket.stream.assign]

18.8.3 basic_stream_socket operations [socket.stream.ops]

18.9 Class template basic_socket_acceptor [socket.acceptor]

18.9.1 basic_socket_acceptor constructors [socket.acceptor.cons]

18.9.2 basic_socket_acceptor destructor [socket.acceptor.dtor]

18.9.3 basic_socket_acceptor assignment [socket.acceptor.assign]

18.9.4 basic_socket_acceptor operations [socket.acceptor.ops]

19 Socket iostreams [socket.iostreams][socket.iostreams]

19.1 Class template basic_socket_streambuf [socket.streambuf]

19.1.1 basic_socket_streambuf constructors [socket.streambuf.cons]

19.1.2 basic_socket_streambuf members [socket.streambuf.members]

19.1.3 basic_socket_streambuf overridden virtual functions [socket.streambuf.virt]

19.2 Class template basic_socket_iostream [socket.iostream]

19.2.1 basic_socket_iostream constructors [socket.iostream.cons]

19.2.2 basic_socket_iostream members [socket.iostream.members]

20 Socket algorithms [socket.algo][socket.algo]

20.1 Synchronous connect operations [socket.algo.connect]

20.2 Asynchronous connect operations [socket.algo.async.connect]

21 Internet protocol [internet][internet]

21.1 Header <experimental/internet> synopsis [internet.synop]

21.2 Requirements [internet.reqmts]

21.2.1 Internet protocol requirements [internet.reqmts.protocol]

21.2.2 Multicast group socket options [internet.reqmts.opt.mcast]

21.4 Class ip::address [internet.address]

21.4.1 ip::address constructors [internet.address.cons]

21.4.2 ip::address assignment [internet.address.assign]

21.4.4 ip::address comparisons [internet.address.comparisons]

21.4.5 ip::address creation [internet.address.creation]

21.5 Class ip::address_v4 [internet.address.v4]

21.5.1 Struct ip::address_v4::bytes_type [internet.address.v4.bytes]

21.5.2 ip::address_v4 constructors [internet.address.v4.cons]

21.5.3 ip::address_v4 members [internet.address.v4.members]

21.5.4 ip::address_v4 static members [internet.address.v4.static]

21.5.5 ip::address_v4 comparisons [internet.address.v4.comparisons]

21.5.6 ip::address_v4 creation [internet.address.v4.creation]

21.5.7 ip::address_v4 I/O [internet.address.v4.io]

21.6 Class ip::address_v6 [internet.address.v6]

21.6.1 Struct ip::address_v6::bytes_type [internet.address.v6.bytes]

21.6.2 ip::address_v6 constructors [internet.address.v6.cons]

21.6.3 ip::address_v6 members [internet.address.v6.members]

21.6.4 ip::address_v6 static members [internet.address.v6.static]

21.6.5 ip::address_v6 comparisons [internet.address.v6.comparisons]

21.6.6 ip::address_v6 creation [internet.address.v6.creation]

21.6.7 ip::address_v6 I/O [internet.address.v6.io]

21.7 Class ip::bad_address_cast [internet.bad.address.cast]

21.8 Hash support [internet.hash]

21.9 Class template ip::basic_address_iterator specializations [internet.address.iter]

21.10 Class template ip::basic_address_range specializations [internet.address.range]

21.11 Class template ip::network_v4 [internet.network.v4]

21.11.1 ip::network_v4 constructors [internet.network.v4.cons]

21.11.2 ip::network_v4 members [internet.network.v4.members]

21.11.3 ip::network_v4 comparisons [internet.network.v4.comparisons]

21.11.4 ip::network_v4 creation [internet.network.v4.creation]

21.12 Class template ip::network_v6 [internet.network.v6]

21.12.1 ip::network_v6 constructors [internet.network.v6.cons]

21.12.2 ip::network_v6 members [internet.network.v6.members]

21.12.3 ip::network_v6 comparisons [internet.network.v6.comparisons]

21.12.4 ip::network_v6 creation [internet.network.v6.creation]

21.13 Class template ip::basic_endpoint [internet.endpoint]

21.13.1 ip::basic_endpoint constructors [internet.endpoint.cons]

21.13.2 ip::basic_endpoint members [internet.endpoint.members]

21.13.3 ip::basic_endpoint comparisons [internet.endpoint.comparisons]

21.13.4 ip::basic_endpoint I/O [internet.endpoint.io]

21.13.5 ip::basic_endpoint members (extensible implementations) [internet.endpoint.extensible]

21.14 Class template ip::basic_resolver_entry [internet.resolver.entry]

21.14.1 ip::basic_resolver_entry constructors [internet.resolver.entry.cons]

21.14.2 ip::basic_resolver_entry members [internet.resolver.entry.members]

21.14.3 op::basic_resolver_entry comparisons [internet.resolver.entry.comparisons]

21.15 Class template ip::basic_resolver_results [internet.resolver.results]

21.15.1 ip::basic_resolver_results constructors [internet.resolver.results.cons]

21.15.2 ip::basic_resolver_results assignment [internet.resolver.results.assign]

21.15.3 ip::basic_resolver_results size [internet.resolver.results.size]

21.15.4 ip::basic_resolver_results element access [internet.resolver.results.access]

21.15.5 ip::basic_resolver_results swap [internet.resolver.results.swap]

21.15.6 ip::basic_resolver_results comparisons [internet.resolver.results.comparisons]

21.16 Class ip::resolver_base [internet.resolver.base]

21.17 Class template ip::basic_resolver [internet.resolver]

21.17.1 ip::basic_resolver constructors [internet.resolver.cons]

21.17.2 ip::basic_resolver destructor [internet.resolver.dtor]

21.17.3 ip::basic_resolver assignment [internet.resolver.assign]

21.17.4 ip::basic_resolver operations [internet.resolver.ops]

21.18 Host name functions [internet.host.name]

21.19 Class ip::tcp [internet.tcp]

21.20 Class ip::udp [internet.udp]

21.21 Internet socket options [internet.socket.opt]

21.21.1 Class ip::multicast::outbound_interface [internet.multicast.outbound]

Index

Index of library names

Index of implementation-defined behavior