This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 117b. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2025-08-11
2129. Non-object prvalues and constant expressionsSection: 7.7 [expr.const] Status: CD4 Submitter: Faisal Vali Date: 2015-05-20[Adopted at the February, 2016 meeting.]
According to 7.7 [expr.const] paragraph 5,
A constant expression is either a glvalue core constant expression whose value... or a prvalue core constant expression whose value is an object where...
Since an integer literal is prvalue that is not an object, this definition does not allow it to be a constant expression.
Proposed resolution (February, 2016):
Change 7.7 [expr.const] paragraph 5 as follows:
A constant expression is either a glvalue core constant expression whose value refers to an entity that is a permitted result of a constant expression (as defined below), or a prvalue core constant expression whose value is an object where, for that object and its subobjects satisfies the following constraints:
if the value is an object of class type, each non-static data member of reference type refers to an entity that is a permitted result of a constant expression, and
if the object or subobject value is of pointer type, it contains the address of an object with static storage duration, the address past the end of such an object (7.6.6 [expr.add]), the address of a function, or a null pointer value . , and
if the value is an object of class or array type, each subobject satisfies these constraints for the value.
An entity is a permitted result of a constant expression if...
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4