Movatterモバイル変換


[0]ホーム

URL:


This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 119a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2025-12-20


2004. Unions with mutable members in constant expressions

Section:7.7  [expr.const]    Status:CD4    Submitter:Richard Smith    Date:2014-09-16

[Moved to DR at the October, 2015 meeting.]

In an example like

  union U { int a; mutable int b; };  constexpr U u1 = {1};  int k = (u1.b = 2);  constexpr U u2 = u1; // ok!!

The initialization ofu2 is not disqualified bythe current wording of the Standard because the copy is donevia the object representation, not formally involving anlvalue-to-rvalue conversion. A restriction should be addedto 7.7 [expr.const] forbidding the evaluation of adefaulted copy/move construction/assignment on a class typethat has any variant mutable subobjects.

Proposed resolution (May, 2015):

  1. Add the following bullet after bullet 3.1 of9.2.6 [dcl.constexpr]:

  2. The definition of aconstexpr function shall satisfy thefollowing constraints:

  3. Add the following bullet after bullet 4.1 of9.2.6 [dcl.constexpr]

  4. The definition of aconstexpr constructor shallsatisfy the following constraints:




[8]ページ先頭

©2009-2026 Movatter.jp