16
Library introduction
[library]
16.4
Library-wide requirements
[requirements]
16.4.5
Constraints on programs
[constraints]
16.4.5.6
Replacement functions
[replacement.functions]
1
#
[support]
through
[thread]
and
[depr]
describe the behavior of numerous functions defined by the C++ standard library
.
Under some circumstances,
however, certain of these function descriptions also apply to replacement functions defined in the program
.
2
#
A C++ program may provide the definition for any of the following dynamic memory allocation function signatures declared in header
<
new
>
(
[basic.
stc.
dynamic]
,
[new.
syn]
):
🔗
operator
new
(
std
::
size_t
)
operator
new
(
std
::
size_t, std
::
align_val_t
)
operator
new
(
std
::
size_t,
const
std
::
nothrow_t
&
)
operator
new
(
std
::
size_t, std
::
align_val_t,
const
std
::
nothrow_t
&
)
🔗
operator
delete
(
void
*
)
operator
delete
(
void
*
, std
::
size_t
)
operator
delete
(
void
*
, std
::
align_val_t
)
operator
delete
(
void
*
, std
::
size_t, std
::
align_val_t
)
operator
delete
(
void
*
,
const
std
::
nothrow_t
&
)
operator
delete
(
void
*
, std
::
align_val_t,
const
std
::
nothrow_t
&
)
🔗
operator
new
[
]
(
std
::
size_t
)
operator
new
[
]
(
std
::
size_t, std
::
align_val_t
)
operator
new
[
]
(
std
::
size_t,
const
std
::
nothrow_t
&
)
operator
new
[
]
(
std
::
size_t, std
::
align_val_t,
const
std
::
nothrow_t
&
)
🔗
operator
delete
[
]
(
void
*
)
operator
delete
[
]
(
void
*
, std
::
size_t
)
operator
delete
[
]
(
void
*
, std
::
align_val_t
)
operator
delete
[
]
(
void
*
, std
::
size_t, std
::
align_val_t
)
operator
delete
[
]
(
void
*
,
const
std
::
nothrow_t
&
)
operator
delete
[
]
(
void
*
, std
::
align_val_t,
const
std
::
nothrow_t
&
)
3
#
The program's definitions are used instead of the default versions supplied by the implementation (
[new.
delete]
)
.
Such replacement occurs prior to program startup (
[basic.
def.
odr]
,
[basic.
start]
)
.
The program's declarations shall not be specified as
inline
.
No diagnostic is required
.