Created on 3022-08-03.00:00:00 last changed 49 months ago
[Moved to DR at the November, 2014 meeting.]
Proposed resolution (February, 2014):
Change 184.108.40.206.2 [basic.stc.dynamic.allocation] paragraph 2 as follows:
...If the request succeeds, the value returned shall be a non-null pointer value (7.3.12 [conv.ptr]) p0 different from any previously returned value p1, unless that value p1 was subsequently passed to an operator delete. The effect of indirecting through a pointer returned as a request for zero size is undefined.36
Notes from the September, 2013 meeting:
CWG agreed that changes for this issue should apply only to non-placement forms.
Additional note, April, 2013:
Concern was expressed that a pool class might provide an interface for iterating over all the pointers that were given out from the pool, and this usage should be supported.
Additional note (March, 2013):
One possibility to allow reasonable optimizations would be to require that allocation packages hide their storage in file-static variables, perhaps by adding wording such as:
Furthermore, p0 shall point to an object distinct from any other object that is accessible outside the implementation of the allocation and deallocation functions.
In 220.127.116.11.2 [basic.stc.dynamic.allocation] paragraph 2, allocation functions are constrained to return a pointer that is different from any previously returned pointer that has not been passed to a deallocation function. This does not, for instance, prohibit returning a pointer to storage that is part of another object, for example, a pool of storage. The potential implications of this for aliasing should be spelled out.
|2017-02-06 00:00:00||admin||set||status: drwp -> cd4|
|2015-05-25 00:00:00||admin||set||status: dr -> drwp|
|2015-04-13 00:00:00||admin||set||messages: + msg5333|
|2014-11-24 00:00:00||admin||set||status: ready -> dr|
|2014-03-03 00:00:00||admin||set||messages: + msg4802|
|2014-03-03 00:00:00||admin||set||status: drafting -> ready|
|2013-10-14 00:00:00||admin||set||messages: + msg4619|
|2013-10-14 00:00:00||admin||set||status: open -> drafting|
|2013-05-03 00:00:00||admin||set||messages: + msg4355|
|2013-03-18 00:00:00||admin||set||messages: + msg4263|