18 Sockets [socket]

18.2 Requirements [socket.reqmts]

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

A type X meets the GettableSocketOption requirements if it satisfies the requirements listed below.

In the table below, a denotes a (possibly const) value of type X, b denotes a value of type X, p denotes a value of a (possibly const) type that meets the Protocol ([socket.reqmts.protocol]) requirements, and s denotes a value of a (possibly const) type that is convertible to size_t and denotes a size in bytes.

Table 27 — GettableSocketOption requirements for extensible implementations
expressiontypeassertion/note pre/post-conditions
a.level(p) int Returns a value suitable for passing as the level argument to POSIX getsockopt (or equivalent).
a.name(p) int Returns a value suitable for passing as the option_name argument to POSIX getsockopt (or equivalent).
b.data(p) void* Returns a pointer suitable for passing as the option_value argument to POSIX getsockopt (or equivalent).
a.size(p) size_t Returns a value suitable for passing as the option_len argument to POSIX getsockopt (or equivalent), after appropriate integer conversion has been performed.
b.resize(p,s) post: b.size(p) == s. Passed the value contained in the option_len argument to POSIX getsockopt (or equivalent) after successful completion of the function. Permitted to throw an exception if the socket option object b does not support the specified size.