Title
Volatile lvalues in constant expressions
Status
cd3
Section
7.7 [expr.const]
Submitter
Nikolay Ivchenkov

Created on 2011-05-06.00:00:00 last changed 123 months ago

Messages

Date: 2012-02-15.00:00:00

[Voted into the WP at the February, 2012 meeting; moved to DR at the October, 2012 meeting.]

Date: 2011-08-15.00:00:00

Proposed resolution (August, 2011):

Change 7.7 [expr.const] paragraph 2 as follows:

  • an lvalue-to-rvalue conversion (7.3.2 [conv.lval]) unless it is applied to

    • a non-volatile glvalue of integral or enumeration type that refers to a non-volatile const object with a preceding initialization, initialized with a constant expression, or

    • a non-volatile glvalue of literal type that refers to a non-volatile object defined with constexpr, or that refers to a sub-object of such an object, or

    • a non-volatile glvalue of literal type that refers to a non-volatile temporary object whose lifetime has not ended, initialized with a constant expression;

Date: 2012-09-24.00:00:00

The current wording of 7.7 [expr.const] paragraph 2 does not, but should, prohibit use of volatile glvalues in constant expressions.

History
Date User Action Args
2014-03-03 00:00:00adminsetstatus: drwp -> cd3
2012-11-03 00:00:00adminsetstatus: dr -> drwp
2012-09-24 00:00:00adminsetmessages: + msg4000
2012-02-27 00:00:00adminsetmessages: + msg3796
2012-02-27 00:00:00adminsetstatus: ready -> dr
2011-05-06 00:00:00admincreate