Created on 2013-04-15.00:00:00 last changed 49 months ago
[Moved to DR at the May, 2015 meeting.]
Proposed resolution (November, 2014):
Change 7.6.10 [expr.eq] paragraph 2, converting the existing running text into bullets, as follows:
If at least one of the operands is a pointer, pointer conversions (7.3.12 [conv.ptr]) and qualification conversions (7.3.6 [conv.qual]) are performed on both operands to bring them to their composite pointer type (Clause Clause 7 [expr]). Comparing pointers is defined as follows:
Two pointers compare equal
theyare both null, both point to the same function, or both represent the same address (6.8.3 [basic.compound]),
otherwise theycompare unequal.
Pointer equality is defined by reference to the addresses of the objects designated by the pointer values, reflecting the implementation technique of most/all compilers. However, this definition is intrinsically a runtime property, and such a description is inappropriate with respect to constexpr expressions, which must deal with pointer comparisons without necessarily knowing the runtime layout of the objects involved. A better definition usable at compile time is needed.
|2017-02-06 00:00:00||admin||set||status: drwp -> cd4|
|2015-11-10 00:00:00||admin||set||status: dr -> drwp|
|2015-05-25 00:00:00||admin||set||messages: + msg6047|
|2015-05-25 00:00:00||admin||set||status: ready -> dr|
|2014-11-24 00:00:00||admin||set||messages: + msg5152|
|2014-11-24 00:00:00||admin||set||status: drafting -> ready|