Created on 2016-06-21.00:00:00 last changed yesterday
[ Brno 2026-06-09 Status changed: New → NAD. ]
[new.delete.single] now only says "suitably aligned" and defers to [basic.stc.dynamic] in Core wording, where [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.
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 [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, [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.)
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2026-06-09 15:29:19 | admin | set | messages: + msg16389 |
| 2026-06-09 15:29:19 | admin | set | status: new -> nad |
| 2016-06-21 00:00:00 | admin | create | |