Lỗi unterminated if n def block from line
This document contains the C++ core language issues on which the Committee (INCITS PL22.16 + WG21) has not yet acted, that is, issues with status "," "," "," "," and "." (See below.) Show This document is part of a group of related documents that together describe the issues that have been raised regarding the C++ Standard. The other documents in the group are:
Section references in this document reflect the section numbering of document WG21 N4958. The purpose of these documents is to record the disposition of issues that have come before the Core Language Working Group of the ANSI (INCITS PL22.16) and ISO (WG21) C++ Standard Committee. Some issues represent potential defects in the ISO/IEC IS 14882:2020 document and corrected defects in the earlier 2017, 2014, 2011, 2003, and 1998 documents; others refer to text in the working draft for the next revision of the C++ language and not to any Standard text. Issues are not necessarily formal ISO Defect Reports (DRs). While some issues will eventually be elevated to DR status, others will be disposed of in other ways. The most current public version of this document can be found at http://www.open-std.org/jtc1/sc22/wg21. Requests for further information about these documents should include the document number, reference ISO/IEC 14882:2020, and be submitted to the InterNational Committee for Information Technology Standards (INCITS), 1250 Eye Street NW, Suite 200, Washington, DC 20005, USA. Information regarding C++ standardization can be found at http://isocpp.org/std. Revision HistoryRevision 112, 2023-08-18: Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Closed issues , , , and . Reflected the decisions of the June, 2023 plenary meeting. Reflected the deliberations of the teleconferences up to 2023-07-14. Revision 111, 2023-03-24: Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Reflected the deliberations of the teleconferences up to 2023-03-03. Reflected the decisions of the February, 2023 plenary meeting. Revision 110, 2022-11-27: Reflected publication of the C++23 CD N4917. Closed issue . Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Created issues for the handling of NB comments on the Committee Draft: , , , , , , , , , , , , , , . Reflected the decisions of the November, 2022 plenary meeting. Revision 109, 2022-08-07: Added links for section references. Reset status of issues assigned to people no longer active on the committee. Reflected the deliberations of the teleconferences. Reflected the decisions of the July, 2022 plenary meeting. Added detailed descriptions to issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Closed issue and as duplicates. Closed issues , , , , , , , , , , , , , , , and . Dissolved the "concurrency" status in favor of liaison indications, affecting issues and . Reopened issues and after obtaining EWG guidance. Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Revision 108, 2022-01-25: Reflected the deliberations of the January, 2022 teleconferences and the decisions of the February, 2022 plenary meeting. Added new issues , , , , , , , , , , , , and . Revision 107, 2021-12-09: Updated the status of issues and . Reflected the deliberations of the December, 2021 CWG teleconference. Added new issues , , , , , , , , , , , and . Revision 106, 2021-11-22: Reflected the deliberations of CWG teleconferences from September through November, 2021, and the decisions of the October, 2021 plenary meeting. Added new issues , , , and . Revision 105, 2021-06-08: Reflected the deliberations of CWG teleconferences from March through August, 2021, and the decisions of the June, 2021 plenary meeting. Added new issues , , , , , , , , , , , , , , , , , , , , and . Revision 104, 2021-02-24: Reflected the decisions of the February, 2021 meeting. Updated the status of issues and , which were previously resolved by editorial action and adoption of a paper, respectively. Added new issue . Revision 103, 2021-02-17: Updated the status of a number of issues that were resolved or rendered moot by other issue resolutions or papers, including issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Reflected the deliberations of the February, 2021 teleconference. Added new issues , , , , , , , , , and . Revision 102, 2020-12-15: Changed back to "drafting" status after problems were found with the proposed resolution. Fixed transcription errors in the proposed resolution for . Corrected the date for resolutions approved at the February, 2019 meeting (they previously indicated approval at the “November, 2019” meeting). Reflected actions at committee meetings and teleconferences. Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Revision 101, 2019-02-27: Reflected actions at committee meetings and teleconferences. Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and ,. Revision 100, 2018-04-11: Reflected actions at the March, 2018 committee meeting and the April, 2018 teleconference. Added new issues , , , , , , , , and . Revision 99, 2018-02-27: Reflected actions of committee meetings and teleconferences. Added new C++17 status and moved issues incorporated in that IS to have that status. Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Revision 98, 2017-03-20: Reflected the deliberations of the February-March, 2017 Committee meeting. Revision 97, 2017-02-07: Reflected the deliberations of the 2016 Committee meetings and teleconferences. Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . (Note that a number of the new issues have only titles at this point; full descriptions will be added in the next revision of the list.) Revision 96, 2016-02-15: Changed the status of from "ready" to "tentatively ready" to reflect revisions to accommodate changes in the underlying wording after the October, 2015 meeting. Reflected the results of drafting review teleconferences held 2016-01-11 and 2016-02-08. Revision 95, 2015-11-10: Reflected the deliberations of the October, 2015 Committee meeting. Moved back to "drafting" status; it was incorrectly inadvertently accepted as a DR at the November, 2014 meeting.XS was moved back to drafting to allow application to additional text. Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Revision 94, 2015-05-25: Reflected deliberations of the May, 2015 meeting. Moved issues and to "extension" status, reflecting EWG's request to develop a position on trivial special functions before CWG addresses them. Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Revision 93, 2015-04-13: Incorporated EWG decisions on issues , , , , , , , , , , , , , , , and . Moved to "accepted" status, reflecting adoption of paper N4266 at the Urbana meeting. Moved to "DRWP" status, reflecting approval of N4140 as the working paper at the November, 2014 meeting. Incorporated resolutions from the drafting review teleconference held 2015-04-06. Revision 92, 2014-11-24: Changed all issues approved by the Committee since the April, 2013 Committee Draft to "C++14" status, to reflect the adoption of ISO/IEC 14882:2014. Moved issues , , , and to "drafting" status, to "open" status, and , , , , and to "review" status in light of concerns that were raised with their proposed resolutions. Moved to "CD3" status to reflect the fact that it had been addressed by paper N3638, adopted at the April, 2013 (Bristol) meeting. Closed issues and as duplicates. Reflected the actions of the November, 2014 (Urbana) meeting. Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and . Revision 91, 2014-10-13: Incorporated deliberations of drafting review teleconferences held 2014-07-14 and 2014-10-06. Added new issue . Revision 90, 2014-07-07: was returned to "drafting" status in light of an alternative suggestion for its resolution. was closed as a duplicate of . Reflected the deliberations of CWG at the 2014-06 (Rapperswil) meeting. Added new issues , , , , , , , , , , , , , , and . Revision 89, 2014-05-27: Issues , , , and were returned to "review" status for further discussion. Restored to "ready"; it had incorrectly been moved back to "drafting" because of a misunderstood comment. Added new issues , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and .
Issue statusIssues progress through various statuses as the Core Language Working Group and, ultimately, the full PL22.16 and WG21 committees deliberate and act. For ease of reference, issues are grouped in these documents by their status. Issues have one of the following statuses: Open: The issue is new or the working group has not yet formed an opinion on the issue. If a Suggested Resolution is given, it reflects the opinion of the issue's submitter, not necessarily that of the working group or the Committee as a whole. Drafting: Informal consensus has been reached in the working group and is described in rough terms in a Tentative Resolution, although precise wording for the change is not yet available. Review: Exact wording of a Proposed Resolution is now available for an issue on which the working group previously reached informal consensus. Ready: The working group has reached consensus that a change in the working draft is required, the Proposed Resolution is correct, and the issue is ready to forward to the full Committee for ratification. Tentatively Ready: Like "ready" except that the resolution was produced and approved by a subset of the working group membership between meetings. Persons not participating in these between-meeting activities are encouraged to review such resolutions carefully and to alert the working group with any problems that may be found. DR: The full Committee has approved the item as a proposed defect report. The Proposed Resolution in an issue with this status reflects the best judgment of the Committee at this time regarding the action that will be taken to remedy the defect; however, the current wording of the Standard remains in effect until such time as a Technical Corrigendum or a revision of the Standard is issued by ISO. accepted: Like a DR except that the issue concerns the wording of the current Working Paper rather than that of the current International Standard. TC1: A DR issue included in Technical Corrigendum 1. TC1 is a revision of the Standard issued in 2003. CD1: A DR issue not resolved in TC1 but included in Committee Draft 1. CD1 was advanced for balloting at the September, 2008 WG21 meeting. CD2: A DR issue not resolved in CD1 but included in the Final Committee Draft advanced for balloting at the March, 2010 WG21 meeting. C++11: A DR issue not resolved in CD2 but included in ISO/IEC 14882:2011. CD3: A DR/DRWP or Accepted/WP issue not resolved in C++11 but included in the Committee Draft advanceed for balloting at the April, 2013 WG21 meeting. C++14: A DR/DRWP or Accepted/WP issue not resolved in CD3 but included in ISO/IEC 14882:2014. CD4: A DR/DRWP or Accepted/WP issue not resolved in C++14 but included in the Committee Draft advanced for balloting at the June, 2016 WG21 meeting. C++17: a DR/DRWP or Accepted/WP issue not resolved in CD4 but included in ISO/IEC 14882:2017. CD5: A DR/DRWP or Accepted/WP issue not resolved in C++17 but included in the Committee Draft advanced for balloting at the July, 2019 WG21 meeting. C++20: a DR/DRWP or Accepted/WP issue not resolved in CD5 but included in ISO/IEC 14882:2020. CD6: A DR/DRWP or Accepted/WP issue not resolved in C++20 but included in the Committee Draft advanced for balloting at the July, 2022 WG21 meeting. C++23: a DR/DRWP or Accepted/WP issue not resolved in CD6 but included in ISO/IEC 14882:2023. DRWP: A DR issue whose resolution is reflected in the current Working Paper. The Working Paper is a draft for a future version of the Standard. WP: An accepted issue whose resolution is reflected in the current Working Paper. Dup: The issue is identical to or a subset of another issue, identified in a Rationale statement. NAD: The working group has reached consensus that the issue is not a defect in the Standard. A Rationale statement describes the working group's reasoning. Extension: The working group has reached consensus that the issue is not a defect in the Standard but is a request for an extension to the language. The working group expresses no opinion on the merits of an issue with this status; however, the issue will be maintained on the list for possible future consideration as an extension proposal. Concepts: The issue relates to the “Concepts” proposal that was removed from the working paper at the Frankfurt (July, 2009) meeting and hence is no longer under consideration. OverviewSection Issue Status Liaison Title 3 intro.defs open Definition of “argument” 3 intro.defs open 'user-declared' is not defined 4.1 intro.compliance open Requirements for freestanding implementations 4.1.1 intro.compliance.general review WG14 error disallows existing implementation practice 4.1.1 intro.compliance.general open Substitution failure and implementation limits 5.2 lex.phases ready Files ending in \ 5.2 lex.phases open SG12 Undefined behavior when splicing results in a universal-character-name 5.2 lex.phases ready Cannot depend on an already-deleted splice 5.3 lex.charset open Restrictions on the ordinary literal encoding 5.4 lex.pptoken drafting Are new/delete identifiers or preprocessing-op-or-punc? 5.4 lex.pptoken drafting Line endings in raw string literals 5.4 lex.pptoken open SG12 Undefined behavior when lexing unmatched quotes 5.5 lex.digraph review EWG Alternative tokens appearing as attribute-tokens 5.6 lex.token drafting punctuator referenced but not defined 5.12 lex.operators drafting Definition of operator and punctuator 5.13 lex.literal review editor Definition of “literal” and kinds of literals 5.13.4 lex.fcon open EWG Excess-precision floating-point literals 5.13.5 lex.string open Repeated evaluation of a string-literal may yield different objects 5.13.9 lex.ext open user-defined-integer-literal overflow 5.13.9 lex.ext drafting Multicharacter user-defined character literals 5.13.9 lex.ext drafting Out-of-range literals in user-defined-literals 6.1 basic.pre drafting Nomenclature for variable vs reference non-static data member 6.3 basic.def.odr open Is a potentially-evaluated expression in a template definition a “use?” 6.3 basic.def.odr review ODR vs alternative tokens 6.3 basic.def.odr open Dependent odr-use in generic lambdas 6.4.1 basic.scope.scope open Overloading virtual functions and functions with trailing requires-clauses 6.4.1 basic.scope.scope open Use of placeholders affecting name mangling 6.5.1 basic.lookup.general drafting Lookup for enumerators in modules 6.5.2 class.member.lookup open Definition of "ambiguous base class" missing 6.5.5.1 basic.lookup.qual.general drafting Template parameters in member selections 6.6 basic.link open Programs and translation units 6.6 basic.link open Repeated structured binding declarations 6.7.1 intro.memory open Data races and common initial sequence 6.7.2 intro.object drafting Size of base class subobject 6.7.2 intro.object drafting std::launder and reuse of character buffers 6.7.2 intro.object open Creation of objects by typeid 6.7.2 intro.object drafting Implicit object creation vs constant expressions 6.7.2 intro.object open Multiple objects of the same type at the same address 6.7.2 intro.object tentatively ready Storage reuse for string literal objects and backing arrays 6.7.2 intro.object open Address comparisons between potentially non-unique objects during constant evaluation 6.7.3 basic.life open Can cast to virtual base class be done on partially-constructed object? 6.7.3 basic.life drafting Type consistency and reallocation of scalar types 6.7.3 basic.life drafting Member access in out-of-lifetime objects 6.7.3 basic.life open Storage deallocation during period of destruction 6.7.3 basic.life review SG12 Modifying const subobjects 6.7.3 basic.life review "Refers to allocated storage" has no meaning 6.7.3 basic.life open Replacing a complete object having base subobjects 6.7.3 basic.life review Replacing union subobjects 6.7.4 basic.indet drafting Placement new and previous initialization 6.7.5 basic.stc open Storage duration and temporaries 6.7.5 basic.stc drafting Temporary storage duration 6.7.5 basic.stc review Storage duration of implicitly created objects 6.7.5.5.2 basic.stc.dynamic.allocation drafting auto return type for allocation and deallocation functions 6.7.5.5.2 basic.stc.dynamic.allocation open Overly-restrictive rules on function templates as allocation functions 6.7.5.5.2 basic.stc.dynamic.allocation drafting Allocating memory for exception objects 6.7.5.5.3 basic.stc.dynamic.deallocation open Can a one-past-the-end pointer be invalidated by deleting an adjacent object? 6.7.5.5.3 basic.stc.dynamic.deallocation drafting Exceptions and deallocation functions 6.7.6 basic.align drafting Misaligned lvalues 6.7.7 class.temporary open Mandatory copy elision vs non-class objects 6.7.7 class.temporary open Lifetime extension through static_cast 6.8 basic.types open WG14 signed char underlying representation for objects 6.8 basic.types drafting Array vs sequence in object representation 6.8.2 basic.fundamental open Floating-point zero 6.8.2 basic.fundamental open How many signed integer types are there? 6.8.2 basic.fundamental review Are cv-qualified std::nullptr_t fundamental types? 6.8.4 basic.compound open Address of past-the-end of a potentially-overlapping subobject 6.9.1 intro.execution open The definition of “sequenced before” is too narrow 6.9.2 intro.multithread open SG1 Unevaluated operands and “carries a dependency” 6.9.2.2 intro.races open Unclear specification of atomic operations 6.9.2.2 intro.races open SG1 Actions and expression evaluation 6.9.2.2 intro.races review Visible side effects and initial value of an object 6.9.3.2 basic.start.static open Interleaving of constructor calls 6.9.3.2 basic.start.static open Side effects in dynamic/static initialization 6.9.3.2 basic.start.static open Initialization order of thread_local template static data members 6.9.3.2 basic.start.static drafting odr-use and delayed initialization 6.9.3.2 basic.start.static drafting Thread storage duration and order of initialization 6.9.3.3 basic.start.dynamic drafting Constant expressions in initialization odr-use 6.9.3.3 basic.start.dynamic open thread_local dynamic initialization 7.3.6 conv.qual open Problems in the specification of qualification conversions 7.5.4 expr.prim.id drafting Unclear relationship among name, qualified name, and unqualified name 7.5.4.2 expr.prim.id.unqual review "denotes a destructor" is missing specification 7.5.4.3 expr.prim.id.qual review Implicitly moving the operand of a throw-expression in unevaluated contexts 7.5.4.4 expr.prim.id.dtor drafting Parentheses in pseudo-destructor calls 7.5.5.2 expr.prim.lambda.closure review Conversion to function pointer for lambda with explicit object parameter 7.5.5.3 expr.prim.lambda.capture drafting Reference odr-use vs implicit capture 7.5.5.3 expr.prim.lambda.capture open Temporary lifetime extension for reference init-captures 7.5.7.1 expr.prim.req.general open EWG Parameter type determination in a requirement-parameter-list 7.5.7.1 expr.prim.req.general tentatively ready Invalid types in the parameter-declaration-clause of a requires-expression 7.5.7.5 expr.prim.req.nested open Nested requirement not a constant expression 7.6.1.3 expr.call open Sequencing of braced-init-list arguments 7.6.1.3 expr.call open Result of a function call 7.6.1.3 expr.call open Confusing term "this parameter" 7.6.1.3 expr.call open Calling explicit object member functions 7.6.1.4 expr.type.conv open EWG Value-initialization of array types 7.6.1.4 expr.type.conv drafting T{expr} with reference types 7.6.1.4 expr.type.conv drafting Missing complete type requirements 7.6.1.5 expr.ref drafting Class member access referring to an unrelated class 7.6.1.5 expr.ref open Accessing ambiguous subobjects 7.6.1.5 expr.ref tentatively ready Overload resolution for non-call of class member access 7.6.1.5 expr.ref open Accessing static data members via null pointer 7.6.1.6 expr.post.incr open Postfix increment/decrement with long bit-field operands 7.6.1.7 expr.dynamic.cast drafting Explicit casts to reference types 7.6.1.8 expr.typeid open Namespace for extended_type_info 7.6.1.8 expr.typeid open typeid null dereference check in subexpressions 7.6.1.9 expr.static.cast open C-style casts that cast away constness vs static_cast 7.6.1.9 expr.static.cast drafting Incorrect use of implicit conversion sequence 7.6.1.10 expr.reinterpret.cast open reinterpret_cast to reference to function types 7.6.2.2 expr.unary.op drafting Is indirection through a null pointer undefined behavior? 7.6.2.4 expr.await open co_await in a lambda-expression 7.6.2.5 expr.sizeof open Padding in class types 7.6.2.8 expr.new open Alignment requirement for new-expressions 7.6.2.8 expr.new drafting Deleted operator delete 7.6.2.8 expr.new open Deallocation function templates 7.6.2.8 expr.new tentatively ready Constructor checking in new-expression 7.6.2.8 expr.new drafting Consistency of aligned operator delete replacement 7.6.2.8 expr.new open Kind of pointer value returned by new T[0] 7.6.2.8 expr.new review Matching deallocation for uncaught exception 7.6.2.8 expr.new open Missing definition for placement allocation/deallocation function 7.6.2.8 expr.new drafting Invoking destroying operator delete for constructor failure 7.6.2.9 expr.delete open Arguments to deallocation functions 7.6.2.9 expr.delete open Evaluation of conversions in a delete-expression 7.6.2.9 expr.delete open What is "access and ambiguity control"? 7.6.4 expr.mptr.oper review Insufficient base class restriction for pointer-to-member expression 7.6.6 expr.add drafting Pointer subtraction in large array 7.6.6 expr.add drafting Pointer arithmetic in array-like containers 7.6.6 expr.add review Array prvalues and additive operators 7.6.9 expr.rel tentatively ready SG22 Treatment of "pointer to void" for relational comparisons 7.6.16 expr.cond drafting Composite reference result type of conditional operator 7.6.16 expr.cond drafting Simplifying class conversions in conditional expressions 7.6.19 expr.ass drafting Compound assignment of braced-init-list 7.6.19 expr.ass open Assignment to scalar with a braced-init-list 7.7 expr.const drafting Definition problems with constexpr functions 7.7 expr.const open Unevaluated operands are not necessarily constant expressions 7.7 expr.const open constexpr member functions in brace-or-equal-initializers 7.7 expr.const drafting Unclear meaning of “undefined constexpr function” 7.7 expr.const drafting Unclear point that “preceding initialization” must precede 7.7 expr.const open Constant expressions and order-of-eval undefined behavior 7.7 expr.const open Value-initialization and constexpr constructor evaluation 7.7 expr.const open Viable user-defined conversions in converted constant expressions 7.7 expr.const open EWG Partially initialized variables during constant initialization 7.7 expr.const open Transparently replacing objects in constant expressions 7.7 expr.const open Defaulted consteval functions 7.7 expr.const open typeid of constexpr-unknown dynamic type 7.7 expr.const open Converting consteval lambda to function pointer in non-immediate context 7.7 expr.const open Constant destruction of reference members 7.7 expr.const open Immediate forward-declared function templates 7.7 expr.const open Too many objects have constexpr-unknown type 7.7 expr.const ready Incorrect wording applied by P2738R1 7.7 expr.const open Defaulted constructor that is an immediate function 7.7 expr.const review Ignorability of [[noreturn]] during constant evaluation 7.7 expr.const open Trivial destructor does not imply constant destruction 8.6.5 stmt.ranged drafting Including
|