...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A type X
meets the Protocol
requirements if it
satisfies the requirements of Destructible
(C++Std [destructible]),
CopyConstructible
(C++Std [copyconstructible]), and CopyAssignable
(C++Std [copyassignable]), as well as the additional requirements listed
below.
No copy or move operation of the type X
shall exit via an exception.
Table 23. Protocol requirements
expression |
return type |
assertion/note |
---|---|---|
|
type meeting endpoint requirements |
In the table below, a
denotes a (possibly const) value of type
X
.
Table 24. Protocol requirements for extensible implementations
expression |
return type |
assertion/note |
---|---|---|
|
|
Returns a value suitable for passing as the domain
argument to POSIX |
|
|
Returns a value suitable for passing as the type
argument to POSIX |
|
|
Returns a value suitable for passing as the protocol
argument to POSIX |