Movatterモバイル変換


[0]ホーム

URL:


Issue 2031 - WG21 CWG Issues
Title
Missing incompatibility for &&
Status
cd4
Section
C.6.3 [diff.cpp03.expr]
Submitter
Melissa Mears

Created on2014-10-31.00:00:00 last changed109 months ago

Messages

msg6085 (view)
Date: 2015-10-15.00:00:00

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

msg5470 (view)
Date: 2015-05-15.00:00:00

Proposed resolution (May, 2015):

Add the following as a new subsection in C.6.3 [diff.cpp03.expr]:

7.6.15 [expr.log.or]
Change:&& is valid in atype-name
Rationale: Required for new features
Effect on original feature: Valid C++ 2003 code may fail tocompile or produce different results in this InternationalStandard, as the following example illustrates:

  bool b1 = new int && false;           // previouslyfalse, now ill-formed  struct S { operator int(); };  bool b2 = &S::operator int && false;  // previouslyfalse, now ill-formed
msg5233 (view)
Date: 2022-02-18.07:47:23

The introduction of rvalue references in C++11 changed theinterpretation of some previously well-formed examples such asthe following:

  struct Struct { template <typename T> operator T(); };  bool example_1 = new int && false;               // #1  bool example_2 = &Struct::operator int && false; // #2

Previously the&& was interpreted as an operator,while it is now part of atype-name. However, this change isnot mentioned in Annex Clause Annex C [diff].

History
DateUserActionArgs
2017-02-06 00:00:00adminsetstatus: dr -> cd4
2015-11-10 00:00:00adminsetmessages: +msg6085
2015-11-10 00:00:00adminsetstatus: ready -> dr
2015-05-25 00:00:00adminsetmessages: +msg5470
2015-05-25 00:00:00adminsetstatus: drafting -> ready
2014-10-31 00:00:00admincreate

[8]ページ先頭

©2009-2026 Movatter.jp