This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD status.
Section: 17.6.3.2 [new.delete.single] Status: NAD Submitter: Clark Nelson Opened: 2016-06-21 Last modified: 2026-06-09
Priority: 3
View all other issues in [new.delete.single].
View all issues with NAD status.
Discussion:
It should be considered whether the description of the single-object allocation functions should say "or smaller", like the array allocation functions. For example, according to 17.6.3.2 [new.delete.single] p1 (emphasis mine):
The allocation function (3.7.4.1) called by a new-expression (5.3.4) to allocate
sizebytes of storage suitably aligned to represent any object of that size.
In contrast to this, 17.6.3.3 [new.delete.array] p1 says (emphasis mine):
The allocation function (3.7.4.1) called by the array form of a new-expression (5.3.4) to allocate
sizebytes of storage suitably aligned to represent any array object of that size or smaller. (footnote: It is not the direct responsibility ofoperator new[](std::size_t)oroperator delete[](void*)to note the repetition count or element size of the array. Those operations are performed elsewhere in the arraynewanddeleteexpressions. The arraynewexpression, may, however, increase the size argument to operatornew[](std::size_t)to obtain space to store supplemental information.)
[Brno 2026-06-09 Status changed: New → NAD.]
17.6.3.2 [new.delete.single] now only says "suitably aligned" and
defers to 6.8.6.5 [basic.stc.dynamic] in Core wording,
where 6.8.6.5.2 [basic.stc.dynamic.allocation] p3 has the equivalent
rule. Changing this would break program-defined replacements of
operator new which would now need to return memory with stricter alignment
for operator new(5) which currently only has to return memory with 1-byte
alignment because an type with size 5 cannot have alignment stricter than 1.
Proposed resolution: