...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 Endpoint
requirements if it satisfies the
requirements of Destructible
(C++Std [destructible]), DefaultConstructible
(C++Std [defaultconstructible]), CopyConstructible
(C++Std [copyconstructible]), and CopyAssignable
(C++Std [copyassignable]), as well as the additional requirements listed
below.
The default constructor and move operations of the type X
shall not exit via an exception.
In the table below, a
denotes
a (possibly const) value of type X
,
and u
denotes an identifier.
Table 14. Endpoint requirements
expression |
type |
assertion/note |
---|---|---|
|
type meeting |
|
|
|
In the table below, a
denotes
a (possibly const) value of type X
,
b
denotes a value of type
X
, and s
denotes a (possibly const) value of a type that is convertible to size_t
and denotes a size in bytes.
Table 15. Endpoint requirements for extensible implementations
expression |
type |
assertion/note |
---|---|---|
|
|
Returns a pointer suitable for passing as the address
argument to functions such as POSIX |
|
|
Returns a pointer suitable for passing as the address
argument to functions such as POSIX |
|
|
Returns a value suitable for passing as the address_len
argument to functions such as POSIX |
|
pre: |
|
|
|
Returns a value suitable for passing as the address_len
argument to functions such as POSIX |