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.

2737. Consider relaxing object size restrictions for single-object allocation functions

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 size bytes 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 size bytes of storage suitably aligned to represent any array object of that size or smaller. (footnote: It is not the direct responsibility of operator new[](std::size_t) or operator delete[](void*) to note the repetition count or element size of the array. Those operations are performed elsewhere in the array new and delete expressions. The array new expression, may, however, increase the size argument to operator new[](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: