C++ Standard Core Language Issue Index by Status, Revision 115


This document contains a summary listing of all the C++ Core Language Issues grouped by status. It 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:

For more information, including a description of the meaning of the issue status codes and instructions on reporting new issues, please see the Active Issues List.

Section references in this document reflect the section numbering of document WG21 N4986.




Index by Status




Issues with "Ready" Status (count=0):

Issue Section Title


Issues with "Tentatively Ready" Status (count=3):

Issue Section Title
2903 13.3 Can we omit the template disambiguator in nested-name-specifiers in type-only contexts?
2905 13.8.3.4 Value-dependence of noexcept-expression
2906 7.6.16 Lvalue-to-rvalue conversion of class types for conditional operator


Issues with "Review" Status (count=43):

Issue Section Title
1001 9.3.4.6 Parameter type adjustment in dependent parameter types
1027 6.7.3 Type consistency and reallocation of scalar types
1602 13.9.2 Linkage of specialization vs linkage of template arguments
1721 11.4.9.3 Diagnosing ODR violations for static data members
1897 6.3 ODR vs alternative tokens
1924 5.13 Definition of “literal” and kinds of literals
2412 9.2.9.7 SFINAE vs undeduced placeholder type
2434 6.7.7 Mandatory copy elision vs non-class objects
2549 7.5.5.3 Implicitly moving the operand of a throw-expression in unevaluated contexts
2551 6.7.3 "Refers to allocated storage" has no meaning
2553 9.3.4.6 Restrictions on explicit object member functions
2554 11.7.3 Overriding virtual functions, also with explicit object parameters
2566 7.6.2.8 Matching deallocation for uncaught exception
2572 12.3 Address of overloaded function with no target
2587 6.9.2.2 Visible side effects and initial value of an object
2589 13.5.2.3 Context of access checks during constraint satisfaction checking
2593 7.6.4 Insufficient base class restriction for pointer-to-member expression
2617 13.2 Default template arguments for template members of non-template classes
2677 6.7.3 Replacing union subobjects
2703 11.10.3 Three-way comparison requiring strong ordering for floating-point types, take 2
2726 5.5 Alternative tokens appearing as attribute-tokens
2737 7.5.6.3 Temporary lifetime extension for reference init-captures
2738 7.5.5.2 "denotes a destructor" is missing specification
2756 11.9 Completion of initialization by delegating constructor
2757 11.9.5 Deleting or deallocating storage of an object during its construction
2778 7.7 Trivial destructor does not imply constant destruction
2797 12.2.2.3 Meaning of "corresponds" for rewritten operator candidates
2800 7.7 Instantiating constexpr variables for potential constant evaluation
2808 13.9.2 Explicit specialization of defaulted special member function
2816 6.9.2.3 Unclear phrasing "may assume ... eventually"
2821 6.7.3 Lifetime, zero-initialization, and dynamic initialization
2827 6.8.2 Representation of unsigned integral types
2833 6.9.3.3 Evaluation of odr-use
2834 13.7.7.3 Partial ordering and explicit object parameters
2843 2 Undated reference to Unicode makes C++ a moving target
2847 13.9.4 Constrained explicit specializations of function templates at class scope
2875 C.7.4 Missing support for round-tripping null pointer values through indirection/address operators
2885 11.4.5.2 Non-eligible trivial default constructors
2888 6.5.4 Missing cases for reference and array types for argument-dependent lookup
2890 11.6 Defining members of local classes
2894 7.6.1.4 Functional casts create prvalues of reference type
2896 13.10.3 Template argument deduction involving exception specifications
2902 7.5.5.1 Implicit this transformation outside of permitted contexts


Issues with "Drafting" Status (count=178):

Issue Section Title
2 13.8.4 How can dependent names be used in member declarations that appear outside of the class template definition?
189 5.12 Definition of operator and punctuator
205 13 Templates and static data members
287 13.8.4.1 Order dependencies in template instantiation
325 9.3.4.7 When are default arguments parsed?
369 5.4 Are new/delete identifiers or preprocessing-op-or-punc?
472 11.8.5 Casting across protected inheritance
529 13.9.4 Use of template<> with “explicitly-specialized” class templates
549 13.7.6.2 Non-deducible parameters in partial specializations
901 7.6.2.8 Deleted operator delete
1092 11.4.5.3 Cycles in overload resolution during instantiation
1172 13.10.3 “instantiation-dependent” constructs
1211 6.7.6 Misaligned lvalues
1223 8.9 Syntactic disambiguation and trailing-return-types
1255 7.7 Definition problems with constexpr functions
1278 12.2.2.2.2 Incorrect treatment of contrived object
1279 C.6 Additional differences between C++ 2003 and C++ 2011
1283 11.4.9.3 Static data members of classes with typedef name for linkage purposes
1286 13.7.8 Equivalence of alias templates
1304 9.4.3 Omitted array bound with string initialization
1322 13.10.3 Function parameter type decay in templates
1348 9.2.9.7 Use of auto in a trailing-return-type
1390 13.8.3.2 Dependency of alias template specializations
1404 11.5 Object reallocation in unions
1414 9.4.4 Binding an rvalue reference to a reference-unrelated lvalue
1444 13.2 Type adjustments of non-type template parameters
1463 13.1 extern "C" alias templates
1485 9.7.1 Out-of-class definition of member unscoped opaque enumeration
1486 13.10.3.3 Base-derived conversion in member pointer deduction
1488 9.3.2 abstract-pack-declarators in type-ids
1499 11.4.6 Missing case for deleted move assignment operator
1513 13.10.3.2 initializer_list deduction failure
1517 11.9.5 Unclear/missing description of behavior during construction/destruction
1521 7.6.1.4 T{expr} with reference types
1524 13.8.3.2 Incompletely-defined class template base
1529 6.1 Nomenclature for variable vs reference non-static data member
1530 6.7.3 Member access in out-of-lifetime objects
1536 12.2.4.2.6 Overload resolution with temporary from initializer list
1542 7.6.19 Compound assignment of braced-init-list
1548 11.4.5.3 Copy/move construction and conversion functions
1554 13.7.8 Access and alias templates
1580 9.3.4.7 Default arguments in explicit instantiations
1582 13.10.3 Template default arguments and deduction failure
1584 13.10.3.2 Deducing function types from cv-qualified types
1594 11.4.5.3 Lazy declaration of special members vs overload errors
1610 13.10.3.5 Cv-qualification in deduction of reference to array
1623 11.4.5 Deleted default union constructor and member initializers
1634 6.7.5 Temporary storage duration
1635 13.2 How similar are template default arguments to function default arguments?
1647 13.7.6 Type agreement of non-type template arguments in partial specializations
1655 5.4 Line endings in raw string literals
1665 13.9.3 Declaration matching in explicit instantiations
1668 9.3.4.6 Parameter type determination still not clear enough
1670 9.2.9.7 auto as conversion-type-id
1676 6.7.5.5.2 auto return type for allocation and deallocation functions
1680 8.6.5 Including <initializer_list> for range-based for
1701 6.8 Array vs sequence in object representation
1702 11.5 Rephrasing the definition of “anonymous union”
1706 9.12.1 alignas pack expansion syntax
1709 15.6.3 Stringizing raw string literals containing newline
1718 15.6 Macro invocation spanning end-of-file
1723 5.13.9 Multicharacter user-defined character literals
1730 13.7 Can a variable template have an unnamed type?
1735 5.13.9 Out-of-range literals in user-defined-literals
1755 13.7.6.4 Out-of-class partial specializations of member templates
1808 11.4.5 Constructor templates vs default constructors
1817 9.11 Linkage specifications and nested scopes
1827 9.4.4 Reference binding with ambiguous conversions
1840 13.9.4 Non-deleted explicit specialization of deleted function template
1845 13.8.4.1 Point of instantiation of a variable template specialization
1854 9.5.2 Disallowing use of implicitly-deleted functions
1868 9.2.9.7 Meaning of “placeholder type”
1883 11.8.5 Protected access to constructors in mem-initializers
1889 15.9 Unclear effect of #pragma on conformance
1890 11.4 Member type depending on definition of member function
1901 5.6 punctuator referenced but not defined
1965 7.6.1.7 Explicit casts to reference types
1977 11.4.7 Contradictory results of failed destructor lookup
1979 13.7.8 Alias template specialization in template member definition
1980 13.7.8 Equivalent but not functionally-equivalent redeclarations
1986 6.9.3.2 odr-use and delayed initialization
1989 12.4 Insufficient restrictions on parameters of postfix operators
1993 13.9.4 Use of template<> defining member of explicit specialization
1996 9.4.5 Reference list-initialization ignores conversion functions
1997 6.7.4 Placement new and previous initialization
2003 15.6 Zero-argument macros incorrectly specified
2013 7.6.6 Pointer subtraction in large array
2023 7.6.16 Composite reference result type of conditional operator
2028 12.2.2.7 Converting constructors in rvalue reference initialization
2037 13.6 Alias templates and template declaration matching
2042 6.7.5.5.3 Exceptions and deallocation functions
2043 13.4.3 Generalized template arguments and array-to-pointer decay
2055 13.10.2 Explicitly-specified non-deduced parameter packs
2056 11.9.3 Member function calls in partially-initialized class objects
2057 13.4.4 Template template arguments with default arguments
2073 6.7.5.5.2 Allocating memory for exception objects
2074 13.8.3.2 Type-dependence of local class of function template
2077 12.2.4.2.5 Overload resolution and invalid rvalue-reference initialization
2086 7.5.6.3 Reference odr-use vs implicit capture
2089 12.2.2.3 Restricting selection of builtin overloaded operators
2090 13.8.3.5 Dependency via non-dependent base class
2108 12.2.2.7 Conversions to non-class prvalues in reference initialization
2110 12.2.4.3 Overload resolution for base class conversion and reference/non-reference
2115 8.7 Order of implicit destruction vs release of automatic storage
2117 9.2.6 Explicit specializations and constexpr function templates
2127 13.7.6 Partial specialization and nullptr
2128 9.4.2 Imprecise rule for reference member initializer
2131 9.7.1 Ambiguity with opaque-enum-declaration
2148 6.9.3.2 Thread storage duration and order of initialization
2158 11.4.7 Polymorphic behavior during destruction
2166 7.7 Unclear meaning of “undefined constexpr function”
2172 14.4 Multiple exceptions with one exception object
2179 13.7.6.1 Required diagnostic for partial specialization after first use
2182 7.6.6 Pointer arithmetic in array-like containers
2186 7.7 Unclear point that “preceding initialization” must precede
2187 11.8.5 Protected members and access via qualified-id
2194 12.2.2.8 Impossible case in list initialization
2202 13.9.2 When does default argument instantiation occur?
2203 11.4.5.3 Defaulted copy/move constructors and UDCs
2219 14.4 Dynamically-unreachable handlers
2222 13.9.2 Additional contexts where instantiation is not required
2223 9.12.2 Multiple alignas specifiers
2236 13.7.8 When is an alias template specialization dependent?
2243 7.6.1.9 Incorrect use of implicit conversion sequence
2245 13.8.4.1 Point of instantiation of incomplete class template
2246 11.8.3 Access of indirect virtual base class constructors
2263 13.9.2 Default argument instantiation for friends
2264 11.4.5.3 Memberwise copying with indeterminate value
2265 13.9.2 Delayed pack expansion and member redeclarations
2275 13.8.3.3 Type-dependence of function template
2281 7.6.2.8 Consistency of aligned operator delete replacement
2283 7.6.1.4 Missing complete type requirements
2316 7.6.16 Simplifying class conversions in conditional expressions
2319 12.2.4.2 Nested brace initialization from same type
2324 6.7.2 Size of base class subobject
2325 6.7.2 std::launder and reuse of character buffers
2327 9.4 Copy elision for direct-initialization with a conversion function
2328 13.10.3.6 Unclear presentation style of template argument deduction rules
2329 11.4.6 Virtual base classes and generated assignment operators
2335 11.4.9.3 Deduced return types vs member types
2395 13.2 Parameters following a pack expansion
2398 13.4.4 Template template parameter matching and deduction
2401 13.4.3 Array decay vs prohibition of subobject non-type arguments
2403 11.9.3 Temporary materialization and base/member initialization
2409 13.9.4 Explicit specializations of constexpr static data members
2421 13.9.3 Explicit instantiation of constrained member functions
2444 6.9.3.3 Constant expressions in initialization odr-use
2462 13.8.1 Problems with the omission of the typename keyword
2467 12.2.2.9 CTAD for alias templates and the deducible check
2468 13.8.1 Omission of the typename keyword in a member template parameter list
2469 6.7.2 Implicit object creation vs constant expressions
2471 12.2.2.9 Nested class template argument deduction
2473 7.5.5.5 Parentheses in pseudo-destructor calls
2480 6.5.1 Lookup for enumerators in modules
2487 13.8.3.3 Type dependence of function-style cast to incomplete array type
2492 12.2.4.2.6 Comparing user-defined conversion sequences in list-initialization
2497 13.8.4.1 Points of instantiation for constexpr function templates
2501 13.9.3 Explicit instantiation and trailing requires-clauses
2503 7.5.5 Unclear relationship among name, qualified name, and unqualified name
2505 9.8.2.2 Nested unnamed namespace of inline unnamed namespace
2525 12.2.4.2.1 Incorrect definition of implicit conversion sequence
2537 9.3.4.6 Overbroad grammar for parameter-declaration
2555 9.9 Ineffective redeclaration prevention for using-declarators
2557 7.6.1.5 Class member access referring to an unrelated class
2563 9.5.4 Initialization of coroutine result object
2564 12.2.2.2.3 Conversion to function pointer with an explicit object parameter
2596 13.9.2 Instantiation of constrained non-template friends
2607 10.2 Visibility of enumerator names
2623 7.6.2.8 Invoking destroying operator delete for constructor failure
2632 3 'user-declared' is not defined
2656 7.7 Converting consteval lambda to function pointer in non-immediate context
2742 9.4.5 Guaranteed copy elision for brace-initialization from prvalue
2799 11.4.5.2 Inheriting default constructors
2815 12.2.4.3 Overload resolution for references/pointers to noexcept functions
2826 6.7.7 Missing definition of "temporary expression"
2862 13.1 Unclear boundaries of template declarations
2863 6.7.3 Unclear synchronization requirements for object lifetime rules
2879 7.6.1.11 Undesired outcomes with const_cast


Issues with "Open" Status (count=219):

Issue Section Liaison Title
57 11.5 Empty unions
144 9.2.9.5 Position of friend specifier
146 6.8.2 Floating-point zero
157 9.1 Omitted typedef declarator
186 13.8.2 Name hiding and template template-parameters
196 7.6.2.9 Arguments to deallocation functions
251 6.8.2 How many signed integer types are there?
260 12.5 User-defined conversions and built-in operator=
264 13.10.2 Unusable template constructors and conversion functions
267 7.6.2.8 Alignment requirement for new-expressions
268 15.6.5 Macro name suppression in rescanned replacement text
282 7.6.1.8 Namespace for extended_type_info
293 13.9.3 Syntax of explicit instantiation/specialization too permissive
310 13.7.7.2 Can function templates differing only in parameter cv-qualifiers be overloaded?
350 6.8 signed char underlying representation for objects
361 9.3.4.7 Forward reference to default argument
365 6.7.5 Storage duration and temporaries
371 6.9.3.2 Interleaving of constructor calls
380 6.5.2 Definition of "ambiguous base class" missing
402 13.7.7.3 More on partial ordering of function templates
419 6.7.3 Can cast to virtual base class be done on partially-constructed object?
498 9.2.2 Storage class specifiers in definitions of class members
503 13.10.3.2 Cv-qualified function types in template argument deduction
511 11.2 POD-structs with template assignment operators
523 6.7.5.5.3 Can a one-past-the-end pointer be invalidated by deleting an adjacent object?
545 12.2.2.3 User-defined conversions and built-in operator overload resolution
579 13.3 What is a “nested” > or >>?
697 13.10.3 Deduction rules apply to more than functions
698 6.9.1 The definition of “sequenced before” is too narrow
708 13.7.6 Partial specialization of member templates of class templates
742 7.6.1.6 Postfix increment/decrement with long bit-field operands
783 3 Definition of “argument”
813 9.9 typename in a using-declaration with a non-dependent name
897 15.12 _Pragma and extended string-literals
914 7.6.1.4 Value-initialization of array types
925 15.2 Type of character literals in preprocessor expressions
949 4.1 Requirements for freestanding implementations
954 12.5 Overload resolution of conversion operator templates with built-in types
1046 13.9.3 What is a “use” of a class specialization?
1049 11.9.6 Copy elision through reference parameters of inline functions
1089 6.5.5.1 Template parameters in member selections
1157 13.7.7.3 Partial ordering of function templates is still underspecified
1209 6.3 Is a potentially-evaluated expression in a template definition a “use?”
1221 13.10.3.5 Partial ordering and reference collapsing
1248 C.7 Updating Annex C to C99
1256 7.7 Unevaluated operands are not necessarily constant expressions
1257 13.8 Instantiation via non-dependent references in uninstantiated templates
1266 5.13.9 user-defined-integer-literal overflow
1294 6.9.3.2 Side effects in dynamic/static initialization
1430 13.7.8 Pack expansion into fixed alias template parameter list
1436 15.2 Interaction of constant expression changes with preprocessor expressions
1459 12.2.4.3 Reference-binding tiebreakers in overload resolution
1549 12.4.3 Overloaded comma operator with void operand
1609 9.3.4.7 Default arguments and function parameter packs
1617 9.12.2 alignas and non-defining declarations
1619 13.8.3.2 Definition of current instantiation
1620 12.6 User-defined literals and extended integer types
1625 15.6.3 Adding spaces between tokens in stringizing
1628 7.6.2.8 Deallocation function templates
1659 6.9.3.2 Initialization order of thread_local template static data members
1682 6.7.5.5.2 Overly-restrictive rules on function templates as allocation functions
1699 11.8.4 Does befriending a class befriend its friends?
1763 13.10.3.6 Length mismatch in template type deduction
1789 12.2.4.3 Array reference vs array decay in overload resolution
1790 9.3.4.6 Ellipsis following function parameter pack
1842 6.9.2 Unevaluated operands and “carries a dependency”
1844 13.10.3 Defining “immediate context”
1856 13.9.2 Indirect nested classes of class templates
1915 11.9.3 Potentially-invoked destructors in non-throwing constructors
1919 12.2.2.3 Overload resolution for ! with explicit conversion operator
1939 13.10.3.2 Argument conversions to nondeduced parameter types revisited
1944 Annex C New C incompatibilities
1953 6.7.1 Data races and common initial sequence
1962 9.5.1 Type of __func__
2002 15 White space within preprocessing directives
2048 7.6.1.9 C-style casts that cast away constness vs static_cast
2067 13.8 Generated variadic templates requiring empty pack
2105 13.4 When do the arguments for a parameter pack end?
2118 13.7.5 Stateful metaprogramming via friend injection
2123 8.8 Omitted constant initialization of local static variables
2160 13.7.7.3 Issues with partial ordering
2168 9.4.5 Narrowing conversions and +/- infinity
2169 12.2.4.2.6 Narrowing conversions and overload resolution
2173 13.7.6 Partial specialization with non-deduced contexts
2188 11.4.1 empty-declaration grammar ambiguity
2189 12.2.2.2.3 Surrogate call template
2190 15.2 Insufficient specification of __has_include
2192 7.7 Constant expressions and order-of-eval undefined behavior
2195 9.2.9.2 Unsolicited reading of trailing volatile members
2228 9.3.3 Ambiguity resolution for cast to function type
2232 9.2.2 thread_local anonymous unions
2244 11.8.5 Base class access in aggregate initialization
2250 13.8.4.1 Implicit instantiation, destruction, and TUs
2258 6.7.3 Storage deallocation during period of destruction
2284 7.6.1.3 Sequencing of braced-init-list arguments
2296 13.10.3 Are default argument instantiation failures in the “immediate context”?
2297 6.9.2.2 Unclear specification of atomic operations
2298 6.9.2.2 Actions and expression evaluation
2301 7.7 Value-initialization and constexpr constructor evaluation
2311 12.2.2.8 Missed case for guaranteed copy elision
2334 6.7.2 Creation of objects by typeid
2337 12.2.4.3 Incorrect implication of logic ladder for conversion sequence tiebreakers
2340 9.6 Reference collapsing and structured bindings
2361 17.13.3 Unclear description of longjmp undefined behavior
2362 9.5.1 __func__ should be constexpr
2417 14.5 Explicit instantiation and exception specifications
2425 12.2.2.9 Confusing wording for deduction from a type
2435 13.9 Alias template specializations
2438 7.3.6 Problems in the specification of qualification conversions
2456 7.7 Viable user-defined conversions in converted constant expressions
2463 11.2 Trivial copyability and unions with non-trivial members
2488 6.4.1 Overloading virtual functions and functions with trailing requires-clauses
2495 8.7.4 Glvalue result of a function call
2498 13.10.3.1 Partial specialization failure and the immediate context
2513 11.4.8.3 Ambiguity with requires-clause and operator-function-id
2514 6.7.3 Modifying const subobjects
2515 7.6.1.3 Result of a function call
2522 15.6.4 Removing placemarker tokens and retention of whitespace
2532 7.6.2.8 Kind of pointer value returned by new T[0]
2536 7.7 Partially initialized variables during constant initialization
2541 10.1 Linkage specifications, module purview, and module attachment
2544 6.8.4 Address of past-the-end of a potentially-overlapping subobject
2545 7.7 Transparently replacing objects in constant expressions
2559 7.7 Defaulted consteval functions
2562 9.5.4 Exceptions thrown during coroutine startup
2565 7.5.8.1 Invalid types in the parameter-declaration-clause of a requires-expression
2575 15.2 Undefined behavior when macro-replacing "defined" operator
2576 15.3 Undefined behavior with macro-expanded #include directives
2577 15.6.1 Undefined behavior for preprocessing directives in macro arguments
2578 15.6.3 Undefined behavior when creating an invalid string literal via stringizing
2579 15.6.4 Undefined behavior when token pasting does not create a preprocessing token
2580 15.7 Undefined behavior with #line
2581 15.11 Undefined behavior for predefined macros
2584 13.7.7.2 Equivalent types in function template declarations
2592 7.6.2.8 Missing definition for placement allocation/deallocation function
2609 7.6.2.5 Padding in class types
2633 7.7 typeid of constexpr-unknown dynamic type
2660 7.6.1.3 Confusing term "this parameter"
2666 6.7.7 Lifetime extension through static_cast
2669 11.9.3 Lifetime extension for aggregate initialization
2670 6.6 Programs and translation units
2671 9.3.4.1 friend named by a template-id
2675 11.5.1 start_lifetime_as, placement-new, and active union members
2676 6.7.3 Replacing a complete object having base subobjects
2679 12.2.4.2.1 Implicit conversion sequence with a null pointer constant
2680 12.2.2.9 Class template argument deduction for aggregates with designated initializers
2684 6.9.3.3 thread_local dynamic initialization
2686 13.5.2 Pack expansion into a non-pack parameter of a concept
2688 7.6.1.3 Calling explicit object member functions
2693 15.7 Escape sequences for the string-literal of #line
2694 15.12 string-literals of the _Pragma operator
2701 9.3.4.7 Default arguments in multiple scopes / inheritance of array bounds in the same scope
2702 7.7 Constant destruction of reference members
2704 9.4.4 Clarify meaning of "bind directly"
2705 7.6.1.5 Accessing ambiguous subobjects
2706 6.6 Repeated structured binding declarations
2727 10.3 Importing header units synthesized from source files
2730 12.2.2.3 Comparison templates on enumeration types
2731 12.2.4.2.3 List-initialization sequence with a user-defined conversion
2734 7.7 Immediate forward-declared function templates
2735 12.2.4 List-initialization and conversions in overload resolution
2736 11.2 Standard layout class with empty base class also in first member
2739 7.5.8.5 Nested requirement not a constant expression
2740 7.7 Too many objects have constexpr-unknown type
2741 12.2.4.2.6 Implicit conversion sequence from empty list to array of unknown bound
2743 11.4.5.3 Copying non-trivial objects nested within a union
2744 6.7.2 Multiple objects of the same type at the same address
2752 5.13.4 Excess-precision floating-point literals
2765 6.7.2 Address comparisons between potentially non-unique objects during constant evaluation
2766 5.13.5 Repeated evaluation of a string-literal may yield different objects
2767 11.5.2 Non-defining declarations of anonymous unions
2769 13.10.3.1 Substitution into template parameters and default template arguments should be interleaved
2770 13.10.3.1 Trailing requires-clause can refer to function parameters before they are substituted into
2773 11.5.2 Naming anonymous union members as class members
2774 13.8.3.4 Value-dependence of requires-expressions
2776 4.1.1 Substitution failure and implementation limits
2779 5.3 Restrictions on the ordinary literal encoding
2781 6.3 Unclear recursion in the one-definition rule
2782 6.3 Treatment of closure types in the one-definition rule
2784 17.2.4 Unclear definition of member-designator for offsetof
2786 7.6.10 Comparing pointers to complete objects
2787 11.4.4 Kind of explicit object copy/move assignment function
2788 6.4.1 Correspondence and redeclarations
2790 12.2.4.2.6 Aggregate initialization and user-defined conversion sequence
2794 13.7.8 Uniqueness of lambdas in alias templates
2802 9.3.4.6 Constrained auto and redeclaration with non-abbreviated syntax
2804 12.2.2.3 Lookup for determining rewrite targets
2805 7.6.2.9 Underspecified selection of deallocation function
2812 7.6.2.8 Allocation with explicit alignment
2817 7.6.2.5 sizeof(abstract class) is underspecified
2829 12.2.4.2.1 Redundant case in restricting user-defined conversion sequences
2832 6.7.7 Invented temporary variables and temporary objects
2835 6.4.1 Name-independent declarations
2837 11.4.5.3 Instantiating and inheriting by-value copy constructors
2838 6.4.3 Declaration conflicts in lambda-expressions
2839 11.4.7 Explicit destruction of base classes
2840 6.7.6 Missing requirements for fundamental alignments
2841 11.4.5.1 When do const objects start being const?
2842 12.2.4.3 Preferring an initializer_list over a single value
2844 12.2.2.3 Enumerating a finite set of built-in candidates
2852 11.4.1 Complete-class contexts and class-scope lambdas
2866 9.12 Observing the effects of [[no_unique_address]]
2868 6.7.7 Self-references in trivially copyable objects as function return values
2873 12.3 Taking the address of a function involving template argument deduction
2878 7.6.3 C-style casts to reference types
2880 7.6.2.9 Accessibility check for destructor of incomplete class type
2889 7.6.2.9 Requiring an accessible destructor for destroying operator delete
2897 11.4.6 Copying potentially-overlapping union subobjects
2898 12.2.4.2.1 Clarify implicit conversion sequence from cv T to T
2899 7.3.2 Bad value representations should cause undefined behavior
2900 13.10.3.6 Deduction of non-type template arguments with placeholder types
2901 7.2.1 Unclear semantics for near-match aliased access
2904 13.1 Introducing template-names
2907 7.7 Constant lvalue-to-rvalue conversion on uninitialized std::nullptr_t
2908 15.7 Counting physical source lines for __LINE__
2909 7.7 Subtle difference between constant-initialized and constexpr
2910 6.3 Effect of requirement-parameter-lists on odr-usability
2911 7.5.8.1 Unclear meaning of expressions "appearing within" subexpressions
2912 7.6.2.8 Too-large value for size in array new


Issues with "Dup" Status:

Issue Section Title
12 6.5.4 Default arguments on different declarations for the same function and the Koenig lookup
15 9.3.4.7 Default arguments for parameters of function templates
72 13 Linkage and storage class specifiers for templates
79 17.6.3.4 Alignment and placement new
82 6.3 Definition of "using" a constant expression
133 14.5 Exception specifications and checking
155 9.4 Brace initializer for scalar
200 13.7.7.3 Partial ordering and explicit arguments
265 7.6.2.9 Destructors, exceptions, and deallocation
313 7.6.2.8 Class with single conversion function to integral as array size in new
321 6.5.4 Associated classes and namespaces for argument-dependent lookup
375 13.8 Confusing example on lookup with typename
507 12.5 Ambiguity assigning class object to built-in type
548 9.3.4 qualified-ids in declarations
550 9.3.4.6 Pointer to array of unknown bound in parameter declarations
595 14.5 Exception specifications in templates instantiated from class bodies
747 11.8.3 Access of protected base classes
839 7.6.2.5 sizeof with opaque enumerations
998 9.3.4.6 Function parameter transformations and template functions
1019 11.7 Dependent simple-template-ids in base-specifiers and mem-initializers
1023 13.4.3 thread_local objects as non-type template arguments
1039 9.12.2 Coordinating C and C++ alignment specifications
1041 11.4 alias-declarations as class members
1052 11.4.5.3 const non-static data member and PODness
1203 11.4.9.3 Misleading note regarding initialized static data members
1205 12.2.4.2.5 Lvalue reference binding and function viability
1230 7.6.2.2 Confusing description of ambiguity of destructor name
1300 7.6.1.4 T() for array types
1326 13.10.3.2 Deducing an array bound from an initializer-list
1337 13.10.3.5 Partial ordering and non-deduced parameters
1349 13.7.8 Consistency of alias template redeclarations
1373 12.2.2.7 Overload resolution changes matching reference-binding changes
1377 C.6 Access declarations not mentioned in Annex C
1422 5.13.3 Type of character literals containing universal-character-names
1445 8.6.5 Argument-dependent lookup of begin and end
1498 8.6.5 Lifetime of temporaries in range-based for
1505 9.4.5 Direct binding of reference to temporary in list-initialization
1526 13.8.3 Dependent-class lookup in the current instantiation
1534 7.2.1 cv-qualification of prvalue of type “array of class”
1568 6.7.7 Temporary lifetime extension with intervening cast
1626 7.7 constexpr member functions in brace-or-equal-initializers
1654 6.8 Literal types and constexpr defaulted constructors
1713 9.11 Linkage of variable template specializations
1853 6.7.3 Defining “allocated storage”
1855 11.9.5 Out-of-lifetime access to nonstatic data members
1927 7.5.6.3 Lifetime of temporaries in init-captures
1994 13.9.4 Confusing wording regarding multiple template<> prefixes
2018 9.4.4 Qualification conversion vs reference binding
2021 13.7.7.2 Function template redeclaration via alias template
2025 13.7.7.2 Declaration matching via alias templates
2029 7.6.1.3 Abstract class return type in decltype operand
2269 9.4.2 Additional recursive references in aggregate DMIs
2291 12.2.4.2 Implicit conversion sequences in non-call contexts
2314 9.6 Structured bindings and lambda capture
2326 13.10.3.2 Type deduction with initializer list containing ambiguous functions
2391 13.7.4 Additional template parameters following pack expansion
2420 14.5 Exception specifications in explicit instantiation
2493 9.2.9.7.1 auto as a conversion-type-id
2696 7.6.9 Relational comparisons of pointers to void
2860 6.7.3 Remove and fix the term "vacuous initialization"
2884 9.2.9.5 Qualified declarations of partial specializations


Issues with "NAD" Status:

Issue Section Title
3 13.9.4 The template compilation model rules render some explicit specialization declarations not visible during instantiation
6 11.9.6 Should the optimization that allows a class object to alias another object also allow the case of a parameter in an inline function to alias its argument?
7 11.8.3 Can a class with a private virtual base class be derived from?
13 9.11 extern "C" for Parameters of Function Templates
14 9.11 extern "C" functions and declarations in different namespaces
17 11.8.3 Footnote 99 should discuss the naming class when describing members that can be accessed from friends
18 9.3.4.6 f(TYPE) where TYPE is void should be allowed
19 11.8.5 Clarify protected member access
23 13.7.7.3 Some questions regarding partial ordering of function templates
26 11.4.5.3 Copy constructors and default arguments
27 12.5 Overload ambiguities for builtin ?: prototypes
31 7.6.2.8 Looking up new/delete
34 13.9.2 Argument dependent lookup and points of instantiation
37 14.6.3 When is uncaught_exception() true?
42 6.4.7 Redefining names from base classes
46 13.9.3 Explicit instantiation of member templates
47 13.7.5 Template friend issues
50 6.3 Converting pointer to incomplete type to same type
55 7.6.6 Adding/subtracting pointer and enumeration value
61 12.3 Address of static member function "&p->f"
66 9.3.4.7 Visibility of default args vs overloads added after using-declaration
71 7 Incorrect cross reference
81 Annex C Null pointers and C compatibility
88 13.9.4 Specialization of member constant templates
91 6.5.4 A union's associated types should include the union itself
95 _N4868_.9.8.2.3 Elaborated type specifiers referencing names declared in friend decls
97 7.7 Use of bool constants in integral constant expressions
99 13.10.3.2 Partial ordering, references and cv-qualifiers
102 12.2.2.3 Operator lookup rules do not work well with parts of the library
104 14.2 Destroying the exception temp when no handler is found
107 9.11 Linkage of operator functions
109 9.9 Allowing ::template in using-declarations
111 11.4.5.3 Copy constructors and cv-qualifiers
114 13.7.3 Virtual overriding by template member function specializations
117 6.7.7 Timing of destruction of temporaries
130 7.6.2.8 Sequence points and new-expressions
132 6.6 Local types and linkage
154 9.2.2 Anonymous unions in unnamed namespaces
156 _N4868_.6.5.6 Name lookup for conversion functions
165 _N4868_.9.8.2.3 Definitions of friends and block-scope externs
167 _N3225_.D.2 Deprecating static functions
168 9.11 C linkage for static member functions
169 9.9 template-ids in using-declarations
174 _N3225_.D.2 Undeprecating global static
182 13.9.4 Access checking on explicit specializations
192 6.5.3 Name lookup in parameters
203 7.6.2.2 Type of address-of-member expression
209 11.8.4 Must friend declaration names be accessible?
211 14 Constructors should not be allowed to return normally after an exception
219 14.6.2 Cannot defend against destructors that throw exceptions
225 6.5.4 Koenig lookup and fundamental types
229 13.7.6 Partial specialization of function templates
230 11.7.4 Calls to pure virtual functions
231 6.5.3 Visibility of names after using-directives
232 7.6.2.2 Is indirection through a null pointer undefined behavior?
234 6.7.3 Reuse of base class subobjects
236 7.7 Explicit temporaries and integral constant expressions
243 12.2.4.2.3 Weighting of conversion functions in direct-initialization
247 12.3 Pointer-to-member casts and function overload resolution
266 Annex A No grammar sentence symbol
269 6.9.3.2 Order of initialization of multiply-defined static data members of class templates
278 6.6 External linkage and nameless entities
285 13.9.4 Identifying a function template being specialized
290 6.8 Should memcpy be allowed into a POD with a const member?
294 7.6.1.9 Can static_cast drop exception specifications?
297 13.10.3 Which template does an explicit specialization specialize?
303 7.3.7 Integral promotions on bit-fields
307 11.9.5 Initialization of a virtual base class subobject
308 14.4 Catching exceptions with ambiguous base classes
311 9.8.2 Using qualified name to reopen nested namespace
315 11.4.9.2 Is call of static member function through null pointer undefined?
316 13.8.2 Injected-class-name of template used as template template parameter
333 9.3.3 Ambiguous use of "declaration" in disambiguation section
334 13.8.3.3 Is a comma-expression dependent if its first operand is?
340 9.3.3 Unclear wording in disambiguation section
346 14.5 Typo in 15.4
347 11.4.12 Use of derived class name in defining base class nested class
356 11.4.5.3 Wording of behavior of generated copy constructor for scalar members
358 9.11 Namespaces and extern "C"
359 11.5 Type definition in anonymous union
363 11.9.2 Initialization of class from self
376 9.2.3 Class "definition" versus class "declaration"
384 6.5.4 Argument-dependent lookup and operator functions
395 11.4.8.3 Conversion operator template syntax
412 9.2.3 Can a replacement allocation function be inline?
422 9.2.4 Is a typedef redeclaration allowed with a template type that might be the same?
423 12.2.2.3 Can a conversion be done on the left operand of a compound assignment?
434 9.4.4 Unclear suppression of standard conversions while binding reference to lvalue
435 9.1 Change "declararation or definition" to "declaration"
440 13.4 Allow implicit pointer-to-member conversion on nontype template argument
444 11.4.6 Overriding and the generated copy assignment operator
445 11.8.4 Wording issue on friend declarations
449 3 Consistency in use of hyphen with names of "non" entities
455 12.2.4 Partial ordering and non-deduced arguments
456 7.3.12 Is initialized const int or const bool variable a null pointer constant?
459 13.8.2 Hiding of template parameters by base class members
461 9.10 Make asm conditionally-supported
465 6.9.3.2 May constructors of global objects call exit()?
467 8.8 Jump past initialization of local static variable
469 13.10.3.6 Const template specializations and reference arguments
471 11.8.3 Conflicting inherited access specifications
473 7.6.2.8 Block-scope declarations of allocator functions
478 9.3.4.5 May a function parameter be an array of an abstract class type?
487 7.7 Operator overloading in constant expressions
489 13.9.2 Must member function templates be instantiated during overload resolution?
501 11.8.4 Visibility of friend declarations within the befriending class
504 9.3.4.3 Should use of a variable in its own initializer require a diagnostic?
512 11.5 Union members with user-declared non-default constructors
528 7.6.1.8 Why are incomplete class types not allowed with typeid?
533 15.3 Special treatment for C-style header names
544 13.8.3 Base class lookup in explicit specialization
552 13.3 Use of typename in the type in a non-type parameter-declaration
553 _N4868_.9.8.2.3 Problems with friend allocation and deallocation functions
560 13.8 Use of the typename keyword in return types
566 7.3.11 Conversion of negative floating point values to integer type
567 7.6.6 Can size_t and ptrdiff_t be larger than long?
574 11.4.6 Definition of “copy assignment operator”
584 7.2.1 Unions and aliasing
585 11.8.4 Friend template template parameters
586 13.10.3.6 Default template-arguments and template argument deduction
593 14.4 Falling off the end of a destructor's function-try-block handler
596 _N4606_.15.5.2 Replacing an exception object
610 7.6.2.2 Computing the negative of 0U
617 7.3.2 Lvalue-to-rvalue conversions of uninitialized char objects
622 7.6.9 Relational comparisons of arbitrary pointers
627 6.8.2 Values behaving as types
635 6.5.5.2 Names of constructors and destructors of templates
640 6.9.3.3 Accessing destroyed local objects of static storage duration
643 9.2.9.3 Use of decltype in a class member-specification
646 6.8 Can a class with a constexpr copy constructor be a literal type?
662 13.10.3 Forming a pointer to a reference type
669 9.2.9.3 Confusing specification of the meaning of decltype
673 _N4868_.9.8.2.3 Injection of names from elaborated-type-specifiers in friend declarations
687 _N4567_.5.1.1 template keyword with unqualified-ids
706 9.2.9.7 Use of auto with rvalue references
718 11.8.4 Non-class, non-function friend declarations
728 13 Restrictions on local classes
733 11.4.6 Reference qualification of copy assignment operators
736 9.3 Is the & ref-qualifier needed?
794 7.3.13 Base-derived conversion in member type of pointer-to-member conversion
795 7.5.6 Dependency of lambdas on <functional>
800 7.6.1.10 Safely-derived pointers and object pointers converted from function pointers
807 7.7 typeid expressions in constant expressions
819 11.4.4 Access control and deleted implicitly-declared special member functions
822 13 Additional contexts for template aliases
829 14.5 At what point is std::unexpected called?
836 9.12.11 [[noreturn]] applied to function types
885 13.10.3.5 Partial ordering of function templates with unordered parameter pairs
893 9.7.1 Brace syntax for enumerator-definitions
902 11.4.9.3 In-class initialization of non-constant static data members
909 7.6.3 Old-style casts with conversion functions
937 5.13.9 Restrictions on values of template arguments in user-defined literals
944 7.6.1.10 reinterpret_cast for all types with the same size and alignment
947 13.10.4 Deducing type template arguments from default function arguments
958 7.5.6 Lambdas and decltype
967 6.7.5.5 Exception specification of replacement allocation function
982 9.4.5 Initialization with an empty initializer list
992 11.4.5.3 Inheriting explicitness
1002 13.7.4 Pack expansion for function arguments
1005 11.4.3 Qualified name resolution in member functions of class templates
1007 11.8.5 Protected access and pointers to members
1008 7.6.2.6 Querying the alignment of an object
1014 13.10.3.2 Overload resolution between const T& and T&&
1026 7.2.1 Cv-qualified non-class rvalues
1040 6.9.2 Memory model issues
1045 13.9.3 Requiring explicit instantiation declarations
1050 6.7.3 Effects of thread support on object lifetime
1053 14.5 Terminate vs undefined behavior for noexcept violation
1058 9.4.4 Reference binding of incompatible array types
1067 _N3225_.7.6.5 [[hiding]], using-declarations, and multiple inheritance
1077 _N4868_.9.8.2.3 Explicit specializations in non-containing namespaces
1078 9.4.5 Narrowing and the usual arithmetic conversions
1084 11.4.5.3 Conditions for a deleted move function
1085 11.4.6 Move assignment operators and virtual bases
1097 9.4.2 Aggregate initialization of function parameters
1108 5.13.9 User-defined literals have not been implemented
1110 6.3 Incomplete return type should be allowed in decltype operand
1118 7.5.6.3 Implicit lambda capture via explicit copy constructor
1124 7.6.4 Error in description of value category of pointer-to-member expression
1132 9.12.11 Keyword vs attribute for noreturn
1141 11.4 Non-static data member initializers have not been implemented
1143 11.4.3 Move semantics for *this have not been implemented
1150 _N4527_.12.9 Inheriting constructors have not been implemented
1162 13.8 Dependent elaborated-type-specifiers in non-deduced contexts
1163 13.9.3 extern template prevents inlining functions not marked inline
1179 13.2 Cv-qualification of non-type template parameters
1217 9.5.3 Are deleted functions implicitly noexcept?
1222 9.3.4.5 Unnecessary restriction on auto array types
1228 12.2.2.8 Copy-list-initialization and explicit constructors
1254 6.3 odr-use vs template arguments and constexpr functions
1259 7.6.2.9 Deleting a POD via a pointer to base
1263 9.4.4 Mismatch between rvalue reference binding and overload resolution
1272 11.4.9.3 Implicit definition of static data member of const literal type
1273 13.10.3 Accessibility and function signatures
1276 6.8.2 Reference to stdint.h
1277 17.4.1 Lax definition of intmax_t and uintmax_t
1280 6.7.3 Object reallocation and reference members
1281 13.8.3.2 Virtual and dependent base classes
1285 6.7.3 Trivial destructors and object lifetime
1289 13.8.3.2 Can an alias template name the current instantiation?
1303 13 C language linkage for template with internal linkage
1314 7.6.6 Pointer arithmetic within standard-layout objects
1316 9.2.6 constexpr function requirements and class scope
1317 9.7.1 Unnamed scoped enumerations
1319 13.2 Error in pack expansion example
1323 9.12.1 Nonexistent nonterminal in alignment-specifier grammar
1325 9.1 Omitted declarator in friend declarations
1334 6.8 Layout compatibility and cv-qualification
1339 9.4 Parenthesized braced-init-list and arrays
1341 11.4 Bit-field initializers
1371 13.10.3.6 Deduction from T&& in return types
1379 9.4.5 Is std::initializer_list an aggregate?
1384 7.7 reinterpret_cast in constant expressions
1386 13.10.2 Explicitly-specified partial argument list with multiple parameter packs
1389 9.3.4.6 Recursive reference in trailing-return-type
1400 7.6.10 Function pointer equality
1407 7.7 Integral to bool conversion in converted constant expressions
1419 9.4.5 Evaluation order in aggregate initialization
1420 11.7.4 Abstract final classes
1421 9.4.5 Full expressions and aggregate initialization
1427 11.4.5 Default constructor and deleted or inaccessible destructors
1429 6.4.9 Scope of a member template's template parameter
1433 6.4.2 trailing-return-type and point of declaration
1434 9.4 Parenthesized braced-init-list
1443 9.3.4.7 Default arguments and non-static data members
1448 6.8.2 Integral values of type bool
1452 7.7 Value-initialized objects may be constants
1461 9.4.5 Narrowing conversions to bit-fields
1470 6.9.2 Thread migration
1474 5.13.9 User-defined literals and <inttypes.h> format macros
1483 13.8 Non-dependent static_assert-declarations
1497 9.4.2 Aggregate initialization with parenthesized string literal
1501 9.4.5 Nested braces in list-initialization
1519 13.7.4 Conflicting default and variadic constructors
1520 13.7.8 Alias template specialization vs pack expansion
1525 7.6.1.4 Array bound inference in temporary array
1540 7.7 Use of address constants in constant expressions
1545 13.7.5 friend function templates defined in class templates
1546 13.10.3 Errors in function template default arguments
1547 13.8 typename keyword in alias-declarations
1555 7.6.1.3 Language linkage and function type compatibility
1564 9.2.9.7 Template argument deduction from an initializer list
1565 9.4.5 Copy elision and lifetime of initializer_list underlying array
1566 7.6.2.8 Should new std::initializer_list<T> be ill-formed?
1574 9.5.2 Explicitly-defaulted constexpr functions in wrapper templates
1577 13.7.6.1 Unnecessary restrictions on partial specializations
1578 9.4 Value-initialization of aggregates
1585 7.6.1.5 Value category of member access of rvalue reference member
1586 11.4.7 Naming a destructor via decltype
1606 7.6.2.5 sizeof closure class
1624 14.3 Destruction of union members with member initializers
1627 9.12.2 Agreement of dependent alignas specifiers
1637 9.2.6 Recursion in constexpr template default constructor
1641 11.9.3 Assignment in member initializer
1643 13.2 Default arguments for template parameter packs
1644 13.7.7.2 Equivalent exception-specifications in function template declarations
1650 9.4.4 Class prvalues in reference initialization
1651 6.7.7 Lifetime extension of temporary via reference to subobject
1661 6.9.2 Preservation of infinite loops
1663 7.5.6.3 Capturing an empty pack expansion
1667 14.2 Function exiting via exception called by destructor during unwinding
1671 13.10.3.2 Unclear rules for deduction with cv-qualification
1675 Annex B Size limit for automatic array object
1678 7.6.2.5 Naming the type of an array of runtime bound
1679 8.6.5 Range-based for and array of runtime bound
1685 7.6.2.7 Value category of noexcept expression
1688 9.2.6 Volatile constexpr variables
1695 6.7.7 Lifetime extension via init-capture
1700 13.10.3.2 Does the special rvalue-reference deduction apply to alias templates?
1703 9.11 Language linkage of names of functions with internal linkage
1714 11.6 odr-use of this from a local class
1720 15.3 Macro invocation in #include directive
1725 9.2.9.7 Trailing return type with nested function declarator
1727 13.9.4 Type of a specialization of a variable template
1731 11.4.5.3 is_trivially_X and definitions of special member functions
1743 7.5.6.3 init-captures in nested lambdas
1745 9.2.6 thread_local constexpr variable
1749 6.9.3.2 Confusing definition for constant initializer
1754 13.7.6 Declaration of partial specialization of static data member template
1761 9.3.4.5 Runtime check on size of automatic array
1768 9.3.4.5 Zero-element array of runtime bound
1783 11.4.7 Why are virtual destructors non-trivial?
1785 13.8 Conflicting diagnostic requirements for template definitions
1792 13.9.4 Incorrect example of explicit specialization of member enumeration
1798 14.5 exception-specifications of template arguments
1826 7.7 const floating-point in constant expressions
1831 11.4.5.3 Explicitly vs implicitly deleted move constructors
1833 11.8.4 friend declarations naming implicitly-declared member functions
1864 9.4.5 List-initialization of array objects
1867 9.3.3 Function/expression ambiguity with qualified parameter name
1869 9.11 thread_local vs linkage-specifications
1871 5.13.9 Non-identifier characters in ud-suffix
1876 13.9.4 Preventing explicit specialization
1879 6.7.6 Inadequate definition of alignment requirement
1904 13.2 Default template arguments for members of class templates
1905 13.8.3.2 Dependent types and injected-class-names
1906 6.5.3 Name lookup in member friend declaration
1917 9.7.1 decltype-qualified enumeration names
1921 7.7 constexpr constructors and point of initialization of const variables
1923 7.6.2.2 Lvalues of type void
1928 11.4.5.3 Triviality of deleted special member functions
1933 Annex B Implementation limit for initializer-list elements
1934 14.5 Relaxing exception-specification compatibility requirements
1947 5.13.2 Digit separators following non-octal prefix
1948 6.7.5.5 exception-specification of replacement global new
1950 12.2.4.3 Restructuring description of ranks of conversion sequences
1957 9.2.9.7 decltype(auto) with direct-list-initialization
1960 9.9 Visibility of entity named in class-scope using-declaration
1964 9.2.4 opaque-enum-declaration in alias-declaration?
1968 7.7 Address of typeid in constant expressions
1970 9.3.3 Ambiguity resolution for (T())*x
1974 13.8 Redundant specification of non-type typename-specifier
1976 9.8.3 Ambiguity of namespace-aliases
1982 13.10.2 Deduction extending parameter pack
1984 9.4.5 Lossless narrowing conversions
1985 9.4.2 Unknown bound array member with brace-or-equal-initializer
1987 11.4.9.3 constexpr static data members across translation units
1998 7.2.1 Additional sources of xvalue expressions
2005 7.7 Incorrect constexpr reference initialization requirements
2014 17.6.3.3 Unneeded deallocation signatures
2030 11.8.3 Access of injected-class-name with template arguments
2034 14.6.3 Deprecating uncaught_exception()
2036 9.3 Refactoring parameters-and-qualifiers
2050 9.2.2 Consolidate specification of linkage
2060 9.2.9.7 Deduced return type for explicit specialization
2078 6.5.2 Name lookup of mem-initilizer-id
2087 7.6.7 Left shift of negative value by zero bits
2111 9.4.4 Array temporaries in reference binding
2119 11.7.3 Disambiguation of multi-level covariant return type
2125 11.9.6 Copy elision and comma operator
2132 11.4.5.3 Deprecated default generated copy constructors
2134 _N4567_.5.1.1 Objectless references to non-static member functions
2135 11.9.3 mem-initializers for virtual bases of abstract classes
2136 6.5.4 Argument-dependent lookup and initializer lists
2138 13.9.4 Explicit member specialization vs implicit instantiation
2139 7.3.11 Floating-point requirements for integer representation
2142 6.5.4 Missing definition of associated classes and namespaces
2152 5.13.9 Can an alternative token be used as a ud-suffix?
2159 7.5.6.3 Lambda capture and local thread_local variables
2161 13.9.3 Explicit instantiation declaration and “preceding initialization”
2178 13.2 Substitution of dependent template arguments in default template arguments
2183 14.5 Problems in description of potential exceptions
2193 17.3.5.2 numeric_limits<int>::radix and digits
2200 13.10.2 Conversions in template argument deduction
2204 11.9.3 Naming delegated constructors
2208 11.4 static_assert-declaration does not declare a member
2209 14.3 Destruction of constructed array elements
2210 14.3 Principal/target constructor confusion
2216 14.5 Exception specifications in unevaluated contexts
2217 9.2.6 constexpr constructors for non-literal types
2225 7.6.1.10 reinterpret_cast to same floating-point type
2230 6.6 Linkage of extern "C" function in unnamed namespace
2231 7.6.1.5 Class member access to static data member template
2238 6.7.5.5.2 Contradictory alignment requirements for allocation
2239 7.6.2.9 Sized deallocation with a trivial destructor
2240 6.3 this is not odr-used in a constant expression
2270 13.9.3 Non-inline functions and explicit instantiation declarations
2274 8.5.2 Generic lambda capture vs constexpr if
2279 9.12.1 Multiple attribute-specifiers in one attribute-list
2286 7.6.19 Assignment evaluation order
2288 9.1 Contradictory optionality in simple-declaration
2302 7.6.10 Address comparison between different member subobjects
2304 12.2.4.2 Incomplete type vs overload resolution
2306 13.7.5 Nested friend templates of class templates
2308 9.6 Structured bindings and lambda capture
2344 8.5 Redeclaration of names in init-statements
2348 8.5.2 Non-templated constexpr if
2349 8 Class/enumeration names vs conditions
2350 13.10.3.5 Forwarding references and deduction guides
2357 6.5.3 Lookup in member function declarations
2363 11.8.4 Opaque enumeration friend declarations
2364 7.7 Constant expressions, aggregate initialization, and modifications
2367 6.3 Lambdas in default arguments vs the ODR
2375 11.4.9.3 Multiple redeclarations of constexpr static data members
2377 12.2.3 Explicit copy constructor vs function viability
2383 13.2 Variadic member functions of variadic class templates
2388 9.12.1 Applicability of contract-attribute-specifiers
2393 _N4778_.7.6.1.4 Pseudo-destructors and object lifetime
2408 9.4.2 Temporaries and previously-initialized elements in aggregate initialization
2415 11.4.6 using-declarations vs copy assignment operators
2423 6.1 Typedefs, names, and entities
2453 9.2.9.7.1 Deduced return types and coroutine lambdas
2454 7.6.2.4 Tail recursion and coroutine symmetric transfer
2472 7.6.2.4 Value categories in await-expressions
2510 11.4.1 noexcept-specifier of friend function vs class completeness
2512 7.6.1.8 typeid and incomplete class types
2524 12.2.4.3 Distinguishing user-defined conversion sequences by ref-qualifier
2527 9.12.12 Non-class potentially-overlapping objects
2548 7.6.6 Array prvalues and additive operators
2567 6.5.2 Operator lookup ambiguity
2655 13.9.2 Instantiation of default arguments in lambda-expressions
2665 6.7.3 Replacing a subobject with a complete object
2709 9.4.1 Parenthesized initialization of reference-to-aggregate
2751 8.8 Order of destruction for parameters for operator functions
2814 7.6.1.9 Alignment requirement of incomplete class type
2893 13.9.2 Instantiations in discarded if constexpr substatements


Issues with "Concepts" Status:

Issue Section Title
723 8.8 Archetypes in skipped declarations
724 6.5.5 Qualified name lookup in a constrained context
725 9.3.4.6 When should the requirement for std::Returnable<T>, etc., apply?
748 _N2914_.14.11.2.1 Always-complete archetypes
780 _N2914_.14.10.2 Questions regarding the point of definition of a concept map
781 _N2914_.14.11.2 Missing requirement in constrained function example
791 6.6 Linkage of concept names
802 7.6.2.2 Problems with restrictions on taking the address of a member of a concept map
821 13 Exported concept map templates?
824 13.7.2 Constrained special member functions
825 _N2914_.14.10.4 TriviallyCopyableType concept
826 _N2914_.14.11.1 Accept boolean constant expressions as constraints
827 _N2914_.14.11.1 Use of && as requirement separator
841 _N2914_.14.10.3.2 Ill-formed concept refinement example
843 13.7.2 Unclear interaction of constraints and special member functions
844 11.4 Is a constrained member function a template?
848 _N2914_.14.11 Unconstrained template template parameters in constrained contexts
849 13.4.4 Constraints and template template parameters
851 13.7.8 Constraints and template aliases
856 _N2960_.3.3.9 Overlapping concept and requirements scopes
857 _N2914_.14.11.1.2 Implying requirements from enclosing scopes
859 _N2960_.6.9 Incomplete comment in late_check example
866 8.6.5 Concept maps and the range-based for
867 13.3 Naming a specialization of a constrained template
868 13.3 Specifying a concept map in the name of a specialization
870 _N2914_.14.10.2.1 Context of expression when satisfying an associated function requirement
871 _N2914_.14.10.2.1 Satisfying associated functions with built-in operators
875 11.4.8.3 Associated conversion functions converting to the same type
878 12.5 Effective class types in built-in pointer-to-member operator
881 13.2 Inconsistent requirement for naming template parameters
889 _N2914_.14.10.1.1 Default implementations of associated functions
890 _N2914_.14.11.1.1 Missing requirement in example
894 _N2914_.14.11.4 Incorrect example for constrained overload resolution
895 _N2914_.14.11.2.1 Missing destructor requirements
907 _N2914_.14.10.2.2 Default types in requirements in auto concepts
911 _N2914_.14.10.2 late_check and concept map templates
916 _N2914_.14.10.2.1 Does a reference type have a destructor?
917 7.3.12 Pointer conversions between archetypes
918 _N2914_.14.10.2.1 Declaration/expression ambiguity in associated function expressions


Issues with "Extension" Status (count=6):

Issue Section Title
1914 9.12 Duplicate standard attributes
2097 7.5.6 Lambdas and noreturn attribute
2261 13.7.5 Explicit instantiation of in-class friend definition
2320 8.5.2 constexpr if and boolean conversions
2449 7.6.2.2 Thunks as an implementation technique for pointers to virtual functions
2500 7.6.1.9 noexcept(false) functions and noexcept expressions


Issues with "DR" Status:

Issue Section Title
233 9.4.4 References vs pointers in UDC overload resolution
2144 9.5.1 Function/variable declaration ambiguity
2561 7.5.6.2 Conversion to function pointer for lambda with explicit object parameter
2588 11.8.4 friend declarations and module linkage
2728 7.6.2.9 Evaluation of conversions in a delete-expression
2818 5.10 Use of predefined reserved identifiers
2836 6.8.6 Conversion rank of long double and extended floating-point types
2859 9.4.1 Value-initialization with multiple default constructors
2861 7.6.1.7 dynamic_cast on bad pointer value
2864 9.4.5 Narrowing floating-point conversions
2865 7.6.16 Regression on result of conditional operator
2867 9.6 Order of initialization for structured bindings
2869 7.5.3 this in local classes
2870 5.13.5 Combining absent encoding-prefixes
2871 11.4.5.2 User-declared constructor templates inhibiting default constructors
2872 6.6 Linkage and unclear "can be referred to"
2874 9.2.9.5 Qualified declarations of partial specializations
2877 9.7.2 Type-only lookup for using-enum-declarator
2881 7.5.6.2 Type restrictions for the explicit object parameter of a lambda
2882 7.6.1.9 Unclear treatment of conversion to void
2883 6.3 Definition of "odr-usable" ignores lambda scopes
2886 6.7.7 Temporaries and trivial potentially-throwing special member functions
2887 C.6.3 Missing compatibility entries for xvalues
2891 Annex B Normative status of implementation limits
2892 7.4 Unclear usual arithmetic conversions
2895 9.4.1 Initialization should ignore the destination type's cv-qualification


Issues with "accepted" Status:

Issue Section Title
2819 7.7 Cast from null pointer value in a constant expression
2858 7.5.5.3 Declarative nested-name-specifiers and pack-index-specifiers
2876 9.5.1 Disambiguation of T x = delete("text")


Issues with "DRWP" Status:

Issue Section Title
170 7.3.13 Pointer-to-member conversions
453 9.3.4.3 References may only bind to “valid” objects
1038 12.3 Overload resolution of &x.static_func
1353 11.4.5 Array and variant members and deleted special member functions
1642 7.6 Missing requirements for prvalue operands
1698 5.2 Files ending in \
1954 7.6.1.8 typeid null dereference check in subexpressions
1973 7.5.6.2 Which parameter-declaration-clause in a lambda-expression?
2049 13.4.3 List initializer in non-type template default argument
2054 13.10.3 Missing description of class SFINAE
2102 7.6.2.8 Constructor checking in new-expression
2149 9.4.2 Brace elision and array length deduction
2252 9.4.5 Enumeration list-initialization from the same type
2450 13.3 braced-init-list as a template-argument
2459 13.4.3 Template parameter initialization
2476 9.2.9.7.1 placeholder-type-specifiers and function declarators
2485 7.3.7 Bit-fields in integral promotions
2504 11.9.4 Inheriting constructors from virtual base classes
2519 6.8.1 Object representation of a bit-field
2531 9.2.6 Static data members redeclared as constexpr
2533 6.7.5 Storage duration of implicitly created objects
2542 7.5.6.2 Is a closure type a structural type?
2546 11.10.4 Defaulted secondary comparison operators defined as deleted
2547 9.5.2 Defaulted comparison operator function for non-classes
2550 9.3.4.3 Type "reference to cv void" outside of a declarator
2552 7.7 Constant evaluation of non-defining variable declarations
2556 8.7.5 Unusable promise::return_void
2560 7.5.8.1 Parameter type determination in a requirement-parameter-list
2568 11.10.1 Access checking during synthesis of defaulted comparison operator
2570 9.5.2 Clarify constexpr for defaulted functions
2573 5.2 Undefined behavior when splicing results in a universal-character-name
2574 5.4 Undefined behavior when lexing unmatched quotes
2591 11.5.1 Implicit change of active union member for anonymous union in union
2595 11.4.4 "More constrained" for eligible special member functions
2600 13.8.3.3 Type dependency of placeholder types
2628 12.2.2.9 Implicit deduction guides should propagate constraints
2634 9.2.9.5 Avoid circularity in specification of scope for friend class declarations
2637 11.1 Injected-class-name as a simple-template-id
2638 9.4.5 Improve the example for initializing by initializer list
2657 9.4.4 Cv-qualification adjustment when binding reference to temporary
2661 11.4.1 Missing disambiguation rule for pure-specifier vs. brace-or-equal-initializer
2663 9.9 Example for member redeclarations with using-declarations
2668 7.6.2.4 co_await in a lambda-expression
2672 13.10.3.1 Lambda body SFINAE is still required, contrary to intent and note
2683 9.3.4.7 Default arguments for member functions of templated nested classes
2689 6.8.2 Are cv-qualified std::nullptr_t fundamental types?
2697 13.7.2.3 Deduction guides using abbreviated function syntax
2698 5.13.2 Using extended integer types with z suffix
2699 7.6.18 Inconsistency of throw-expression specification
2700 4.1.1 #error disallows existing implementation practice
2707 13.7.2.3 Deduction guides cannot have a trailing requires-clause
2708 9.4.1 Parenthesized initialization of arrays
2710 7.7 Loops in constant expressions
2711 7.6.18 Source for copy-initializing the exception object
2712 12.2.2.3 Simplify restrictions on built-in assignment operator candidates
2713 9.4.5 Initialization of reference-to-aggregate from designated initializer list
2714 12.2.2.9 Implicit deduction guides omit properties from the parameter-declaration-clause of a constructor
2715 7.6.1.3 "calling function" for parameter initialization may not exist
2716 11.4.8.3 Rule about self-or-base conversion is normatively redundant
2717 13.7.4 Pack expansion for alignment-specifier
2718 7.6.1.9 Type completeness for derived-to-base conversions
2719 6.7.6 Creating objects in misaligned storage
2720 13.8.1 Template validity rules for templated entities and alias templates
2721 6.7.3 When exactly is storage reused?
2722 7.6.2.7 Temporary materialization conversion for noexcept operator
2723 6.8.2 Range of representable values for floating-point types
2724 7.6.7 Clarify rounding for arithmetic right shift
2725 7.6.1.5 Overload resolution for non-call of class member access
2729 7.6.2.8 Meaning of new-type-id
2732 10.3 Can importable headers react to preprocessor state from point of import?
2733 9.12.9 Applying [[maybe_unused]] to a label
2745 6.3 Dependent odr-use in generic lambdas
2746 13.8.1 Checking of default template arguments
2747 5.2 Cannot depend on an already-deleted splice
2748 7.6.1.5 Accessing static data members via null pointer
2749 7.6.9 Treatment of "pointer to void" for relational comparisons
2750 7.7 construct_at without constructor call
2753 6.7.2 Storage reuse for string literal objects and backing arrays
2754 9.5.4 Using *this in explicit object member functions that are coroutines
2755 7.7 Incorrect wording applied by P2738R1
2758 7.6.2.9 What is "access and ambiguity control"?
2759 11.4.1 [[no_unique_address] and common initial sequence
2760 7.7 Defaulted constructor that is an immediate function
2761 11.4.7 Implicitly invoking the deleted destructor of an anonymous union member
2762 12.2.2.1 Type of implicit object parameter
2763 7.7 Ignorability of [[noreturn]] during constant evaluation
2764 6.4.1 Use of placeholders affecting name mangling
2768 7.6.19 Assignment to enumeration variable with a braced-init-list
2771 11.4.3 Transformation for unqualified-ids in address operator
2772 C.6.4 Missing Annex C entry for linkage effects of linkage-specification
2775 14.2 Unclear argument type for copy of exception object
2777 13.2 Type of id-expression denoting a template parameter object
2780 7.6.1.10 reinterpret_cast to reference to function types
2783 10.4 Handling of deduction guides in global-module-fragment
2785 13.8.3.3 Type-dependence of requires-expression
2789 12.2.4.1 Overload resolution with implicit and explicit object member functions
2791 8.7.4 Unclear phrasing about "returning to the caller"
2792 7.6.2.7 Clean up specification of noexcept operator
2793 6.4.3 Block-scope declaration conflicting with parameter name
2795 6.7.2 Overlapping empty subobjects with different cv-qualification
2796 7.6.9 Function pointer conversions for relational operators
2798 7.7 Manifestly constant evaluation of the static_assert message
2801 9.4.4 Reference binding with reference-related types
2803 12.2.4.2.5 Overload resolution for reference binding of similar types
2806 13.8.1 Make a type-requirement a type-only context
2807 11.4.7 Destructors declared consteval
2809 9.5.2 An implicit definition does not redeclare a function
2810 13.8.1 Requiring the absence of diagnostics for templates
2811 6.9.3.1 Clarify "use" of main
2813 7.6.1.5 Class member access with prvalues
2820 9.4.1 Value-initialization and default constructors
2822 6.7.5.1 Side-effect-free pointer zap
2823 7.6.2.2 Implicit undefined behavior when dereferencing pointers
2824 9.4.1 Copy-initialization of arrays
2825 8.6.5 Range-based for statement using a braced-init-list
2828 7.6.3 Ambiguous interpretation of C-style cast
2830 9.4.5 Top-level cv-qualification should be ignored for list-initialization
2831 9.3.1 Non-templated function definitions and requires-clauses
2845 7.5.6.2 Make the closure type of a captureless lambda a structural type
2846 9.3.4.6 Out-of-class definitions of explicit object member functions
2848 13.9.3 Omitting an empty template argument list for explicit instantiation
2849 6.7.7 Parameter objects are not temporary objects
2850 6.7.5 Unclear storage duration for function parameter objects
2851 7.7 Allow floating-point conversions in converted constant expressions
2853 7.6.6 Pointer arithmetic with pointer to hypothetical element
2854 14.2 Storage duration of exception objects
2855 7.6.1.6 Undefined behavior in postfix increment
2856 12.2.2.8 Copy-list-initialization with explicit default constructors
2857 6.5.4 Argument-dependent lookup with incomplete class types


Issues with "WP" Status:

Issue Section Title


Issues with "TC1" Status:

Issue Section Title
1 9.3.4.7 What if two using-declarations refer to the same function but the declarations introduce different default-arguments?
20 11.4.5.3 Some clarifications needed for 12.8 para 15
21 13.2 Can a default argument for a template parameter appear in a friend declaration?
22 13.8.4 Template parameter with a default argument that refers to itself
24 13.9.4 Errors in examples in 14.7.3
25 14.5 Exception specifications and pointers to members
30 13.3 Valid uses of "::template"
32 13 Clarification of explicit instantiation of non-exported templates
33 6.5.4 Argument dependent lookup and overloaded functions
35 9.4 Definition of default-initialization
38 13.3 Explicit template arguments and operator functions
40 9.3.4 Syntax of declarator-id
41 6.5.3 Clarification of lookup of names after declarator-id
43 6.8 Copying base classes (PODs) using memcpy
48 11.4.9.3 Definitions of unused static members
49 13.2 Restriction on non-type, non-value template arguments
51 12.2.4 Overloading and user-defined conversions
52 7.6.1.5 Non-static members, member selection and access checking
53 7.6.1.9 Lvalue-to-rvalue conversion before certain static_casts
56 9.2.4 Redeclaring typedefs within classes
59 12.2.2.5 Clarification of overloading and UDC to reference type
64 13.9.4 Partial ordering to disambiguate explicit specialization
65 9.3.4.7 Typo in default argument example
67 11.4.9 Evaluation of left side of object-expression
68 9.2.9.5 Grammar does not allow "friend class A<int>;"
69 9.2.2 Storage class specifiers on template declarations
73 7.6.10 Pointer equality
74 7.6.2.8 Enumeration value in direct-new-declarator
75 11.4 In-class initialized members must be const
76 9.2.9.2 Are const volatile variables considered "constant expressions"?
80 11.4 Class members with same name as class
83 12.2.4.3 Overloading and deprecated conversion of string literal
84 12.2.4.2 Overloading and conversion loophole used by auto_ptr
85 6.5.6 Redeclaration of member class
89 6.7.3 Object lifetime does not account for reference rebinding
90 6.5.4 Should the enclosing class be an "associated class" too?
93 6.7.3 Missing word in 3.8 basic.life paragraph 2
94 7.7 Inconsistencies in the descriptions of constant expressions
98 14 Branching into try block
100 13.4.3 Clarify why string literals are not allowed as template arguments
101 9.9 Redeclaration of extern "C" names via using-declarations
103 9.8.4 Is it extended-namespace-definition or extension-namespace-definition ?
105 13 Meaning of "template function"
108 13.8.3.2 Are classes nested in templates dependent?
116 13.7.7.2 Equivalent and functionally-equivalent function templates
120 13.8 Nonexistent non-terminal qualified-name
121 13.8 Dependent type names with non-dependent nested-name-specifiers
123 _N4567_.5.1.1 Bad cross-reference
126 14.5 Exception specifications and const
127 7.6.2.8 Ambiguity in description of matching deallocation function
128 7.6.1.9 Casting between enum types
131 _N2691_.E Typo in Lao characters
134 13 Template classes and declarator-ids
135 9.3.4.6 Class type in in-class member function definitions
137 7.6.1.9 static_cast of cv void*
142 11.8.3 Injection-related errors in access example
145 D.7 Deprecation of prefix ++
147 _N4567_.5.1.1 Naming the constructor
148 11 POD classes and pointers to members
149 7.3.12 Accessibility and ambiguity
151 9.4 Terminology of zero-initialization
152 11.4.8.2 explicit copy constructors
153 12.2.4.3 Misleading wording (rank of conversion)
159 9.3.4 Namespace qualification in declarators
161 11.8.5 Access to protected nested type
163 9.4.2 Description of subaggregate initializer
164 6.5.4 Overlap between Koenig and normal lookup
166 _N4868_.9.8.2.3 Friend declarations of template-ids
171 9.8 Global namespace scope
173 5.3 Constraints on execution character set
176 11 Name injection and templates
178 9.4 More on value-initialization
179 7.6.6 Function pointers and subtraction
181 13.10.3.6 Errors in template template-parameter example
183 13.8 typename in explicit specializations
185 11.4.5.3 "Named" temporaries and copy elision
187 13.2 Scope of template parameter names
188 7.6.20 Comma operator and rvalue conversion
190 11.4 Layout-compatible POD-struct types
193 11.4.7 Order of destruction of local automatics of destructor
194 11.4.5 Identifying constructors
202 12.3 Use of overloaded function name
206 _N4868_.13.8.4 Semantic constraints on non-dependent names
210 14.4 What is the type matched by an exception handler?
213 13.8.3 Lookup in dependent base classes
217 9.3.4.7 Default arguments for non-template member functions of class templates
227 8.5 How many scopes in an if statement?
235 11.9.3 Assignment vs initialization
241 13.10.2 Error in example in 14.8.1
249 13.7.2.2 What is a member function template?
250 12.3 Address of function template specialization with non-deduced template arguments
304 9.4 Value-initialization of a reference


Issues with "CD1" Status:

Issue Section Title
4 9.11 Does extern "C" affect the linkage of function names with internal linkage?
5 9.4 CV-qualifiers and type conversions
8 11.8 Access to template arguments used in a function return type and in the nested name specifier
9 11.8.3 Clarification of access to base class members
10 11.8.8 Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?
11 9.9 How do the keywords typename/template interact with using-declarations?
16 11.8.3 Access to members of indirect private base classes
28 6.9.3.3 'exit', 'signal' and static object destruction
29 9.11 Linkage of locally declared functions
39 6.5.2 Conflicting ambiguity rules
44 13.9.4 Member specializations
45 11.8.8 Access to nested classes
54 7.6.1.9 Static_cast from private base to derived class
58 11.4.10 Signedness of bit fields of enum type
60 12.2.4.2.5 Reference binding and valid conversion sequences
62 13.4.2 Unnamed members of classes used as type parameters
63 13.9.2 Class instantiation from pointer conversion to void*, null and self
70 13.10.3.6 Is an array bound a nondeduced context?
77 11.8.4 The definition of friend does not allow nested classes to be friends
78 9.4 Section 8.5 paragraph 9 should state it only applies to non-static objects
86 6.7.7 Lifetime of temporaries in query expressions
87 14.5 Exception specifications on function parameters
106 unknown Creating references to references during template deduction/instantiation
112 9.3.4.5 Array types and cv-qualifiers
113 7.6.1.3 Visibility of called function
115 12.3 Address of template-id
118 7.6.1.3 Calls via pointers to virtual member functions
119 6.7.3 Object lifetime and aggregate initialization
122 _N4567_.5.1.1 template-ids as unqualified-ids
124 6.7.7 Lifetime of temporaries in default initialization of class arrays
125 _N4567_.5.1.1 Ambiguity in friend declaration syntax
136 9.3.4.7 Default arguments and friend declarations
139 6.5.3 Error in friend lookup example
140 9.3.4.6 Agreement of parameter declarations
141 _N4868_.6.5.6 Non-member function templates in member access expressions
143 6.5.4 Friends and Koenig lookup
158 7.2.1 Aliasing and qualification conversions
160 9.3.3 Missing std:: qualification
162 12.2.2.2 (&C::f)() with nonstatic members
172 9.7.1 Unsigned int as underlying type of enum
175 11 Class name injection and base name access
177 9.4 Lvalues vs rvalues in copy-initialization
180 13.8 typename and elaborated types
184 13.2 Default arguments in template template-parameters
195 7.6.1.10 Converting between function and object pointers
197 13.8.4.2 Issues with two-stage lookup of dependent names
198 11.6 Definition of "use" in local and nested classes
199 6.7.7 Order of destruction of temporaries
201 6.7.7 Order of destruction of temporaries in initializers
204 13 Exported class templates
207 11.8.3 using-declarations and protected access
208 14.2 Rethrowing exceptions in nested handlers
214 13.7.7.3 Partial ordering of function templates is underspecified
215 13.2 Template parameters are not allowed in nested-name-specifiers
216 6.6 Linkage of nameless class-scope enumeration types
218 6.5.4 Specification of Koenig lookup
220 6.7.5.5.3 All deallocation functions should be required not to throw
221 12.4.3.2 Must compound assignment operators be member functions?
222 7 Sequence points and lvalue-returning operators
224 13.8.3.2 Definition of dependent names
226 13.2 Default template arguments for function templates
228 13.3 Use of template keyword with non-member templates
237 13.9.3 Explicit instantiation and base class members
239 12.2.2.2.2 Footnote 116 and Koenig lookup
244 11.4.7 Destructor lookup
245 6.5.6 Name lookup in elaborated-type-specifiers
246 13.4 Jumps in function-try-block handlers
252 11.4.7 Looking up deallocation functions in virtual destructors
254 6.5.6 Definitional problems with elaborated-type-specifiers
256 7.6.2.8 Overflow in size calculations
258 9.9 using-declarations and cv-qualifiers
259 13.9 Restrictions on explicit specialization and instantiation
261 6.3 When is a deallocation function "used?"
262 9.3.4.6 Default arguments and ellipsis
263 11.4.5 Can a constructor be declared a friend?
270 6.9.3.2 Order of initialization of static data members of class templates
272 11.4.7 Explicit destructor invocation and qualified-ids
273 11 POD classes and operator&()
274 6.7.3 Cv-qualification and char-alias access to out-of-lifetime objects
275 13.9.4 Explicit instantiation/specialization and using-directives
276 8.7 Order of destruction of parameters and temporaries
277 9.4 Zero-initialization of pointers
280 12.2.2.2.3 Access and surrogate call functions
281 9.2.3 inline specifier in friend declarations
283 9.2.9.3 Template type-parameters are not syntactically type-names
284 11 qualified-ids in class declarations
286 13.7.6 Incorrect example in partial specialization
288 7.6.2.9 Misuse of "static type" in describing pointers
289 6.3 Incomplete list of contexts requiring a complete type
291 9.4.4 Overload resolution needed when binding reference to class rvalue
295 9.3.4.6 cv-qualifiers on function types
296 11.4.8.3 Can conversion functions be static?
298 6.5.5.2 T::x when T is cv-qualified
299 7.6.2.8 Conversion on array bound expression in new
300 13.10.3.6 References to functions in template argument deduction
301 13.3 Syntax for template-name
302 9.4 Value-initialization and generation of default constructor
305 _N4868_.6.5.6 Name lookup in destructor call
306 6.5.2 Ambiguity by class name injection
309 6.1 Linkage of entities whose names are not simply identifiers, in introduction
317 9.2.3 Can a function be declared inline after it has been called?
318 6.5.5.2 struct A::A should not name the constructor of A
319 6.6 Use of names without linkage in declaring entities with linkage
320 6.7.7 Question on copy constructor elision example
322 13.10.3.4 Deduction of reference conversions
323 13 Where must export appear?
324 7.6.2.2 Can "&" be applied to assignment to bit-field?
326 11.4.5 Wording for definition of trivial constructor
327 11 Use of "structure" without definition
328 11.4 Missing requirement that class member types be complete
329 13.7.5 Evaluation of friends of templates
331 11.4.5 Allowed copy constructor signatures
335 13 Allowing export on template members of nontemplate classes
336 13.9.4 Explicit specialization examples are still incorrect
337 13.10.3 Attempt to create array of abtract type should cause deduction to fail
339 7.7 Overload resolution in operand of sizeof in constant expression
345 13.8 Misleading comment on example in templates chapter
348 6.7.5.5.3 delete and user-written deallocation functions
349 13.10.3.4 Template argument deduction for conversion functions and qualification conversions
351 7 Sequence point error: unspecified or undefined?
352 13.10.3.2 Nondeduced contexts
353 7.6.2.9 Is deallocation routine called if destructor throws exception in delete?
354 13.4.3 Null as nontype template argument
357 3 Definition of signature should include name
362 5.2 Order of initialization in instantiation units
364 12.2.2.2.2 Calling overloaded function with static in set, with no object
366 7.7 String literal allowed in integral constant expression?
367 7.7 throw operator allowed in constant expression?
368 13.10.3 Uses of non-type parameters that should cause deduction to fail
370 15.3 Can #include <...> form be used other than for standard C++ headers?
372 13.4 Is access granted by base class specifiers available in following base class specifiers?
377 9.7.1 Enum whose enumerators will not fit in any integral type
378 8.7 Wording that says temporaries are declared
379 11 Change "class declaration" to "class definition"
381 _N4868_.6.5.6 Incorrect example of base class member lookup
382 13.8 Allow typename outside of templates
383 11 Is a class with a declared but not defined destructor a POD?
385 11.8.5 How does protected member check of 11.5 interact with using-declarations?
387 _N4868_.13.8.6 Errors in example in 14.6.5
389 6.6 Unnamed types in entities with linkage
390 11.7.4 Pure virtual must be defined when implicitly called
391 9.4.4 Require direct binding of short-lived references to rvalues
392 6.7.7 Use of full expression lvalue before temporary destruction
394 15 identifier-list is never defined
396 9.2.3 Misleading note regarding use of auto for disambiguation
397 9.2.3 Same address for string literals from default arguments in inline functions?
398 13.10.3 Ambiguous wording on naming a type in deduction
400 6.5.5.3 Using-declarations and the "struct hack"
401 13.2 When is access for template parameter default arguments checked?
403 6.5.4 Reference to a type as a template-id
404 6.7.3 Unclear reference to construction with non-trivial constructor
406 11.4.9.3 Static data member in class with name for linkage purposes
409 13.8 Obsolete paragraph missed by changes for issue 224
410 13.7.5 Paragraph missed in changes for issue 166
413 11 Definition of "empty class"
414 _N4868_.6.5.6 Multiple types found on destructor lookup
415 13.10.4 Template deduction does not cause instantiation
416 12.2.2.3 Class must be complete to allow operator lookup?
417 11.3 Using derived-class qualified name in out-of-class nested class definition
420 12.4.6 postfixexpression->scalar_type_dtor() inconsistent
421 7.6.1.5 Is rvalue.field an rvalue?
424 9.2.4 Wording problem with issue 56 resolution on redeclaring typedefs in class scope
425 12.5 Set of candidates for overloaded built-in operator with float operand
427 7.6.1.9 static_cast ambiguity: conversion versus cast to derived
428 14.2 Mention of expression with reference type
429 7.6.2.8 Matching deallocation function chosen based on syntax or signature?
430 9.4.2 Ordering of expression evaluation in initializer list
432 6.4.7 Is injected class name visible in base class specifier list?
433 6.4.2 Do elaborated type specifiers in templates inject into enclosing namespace scope?
436 11.4.10 Problem in example in 9.6 paragraph 4
437 11.4 Is type of class allowed in member function exception specification?
439 7.6.1.9 Guarantees on casting pointer back to cv-qualified version of original type
441 6.9.3.2 Ordering of static reference initialization
442 7.6.2.9 Incorrect use of null pointer constant in description of delete operator
443 6.7.7 Wording nit in description of lifetime of temporaries
446 7.6.16 Does an lvalue-to-rvalue conversion on the "?" operator produce a temporary?
447 13.8.3.4 Is offsetof type-dependent?
450 9.4.4 Binding a reference to const to a cv-qualified array rvalue
451 7 Expressions with invalid results and ill-formedness
452 _N4868_.11.4.3.2 Wording nit on description of this
454 11.4.9.3 When is a definition of a static data member required?
457 7.7 Wording nit on use of const variables in constant expressions
460 9.9 Can a using-declaration name a namespace?
463 7.6.1.10 reinterpret_cast<T*>(0)
464 6.7.7 Wording nit on lifetime of temporaries to which references are bound
466 _N4778_.7.6.1.4 cv-qualifiers on pseudo-destructor type
468 13.3 Allow ::template outside of templates
470 13.9.3 Instantiation of members of an explicitly-instantiated class template
474 6.6 Block-scope extern declarations in namespace members
477 9.2.3 Can virtual appear in a friend declaration?
479 14.2 Copy elision in exception handling
480 7.3.13 Is a base of a virtual base also virtual?
484 11.7 Can a base-specifier name a cv-qualified class type?
485 6.1 What is a “name”?
486 13.10.3 Invalid return types and template argument deduction
488 13.10.3 Local types, overload resolution, and template argument deduction
491 9.4.2 Initializers for empty-class aggregrate members
492 7.6.1.8 typeid constness inconsistent with example
494 11.8 Problems with the resolution of issue 45
497 7.6.4 Missing required initialization in example
500 11.8.4 Access in base-specifiers of friend and nested classes
505 5.13.3 Conditionally-supported behavior for unknown character escapes
506 7.6.1.3 Conditionally-supported behavior for non-POD objects passed to ellipsis
509 9.4 Dead code in the specification of default initialization
510 11.9 Default initialization of POD classes?
513 6.7.2 Non-class “most-derived” objects
514 6.5.3 Is the initializer for a namespace member in the scope of the namespace?
515 13.8.3 Non-dependent references to base class members
516 9.2.9.3 Use of signed in bit-field declarations
517 13.7.6.1 Partial specialization following explicit instantiation
518 9.7.1 Trailing comma following enumerator-list
519 7.3.12 Null pointer preservation in void* conversions
520 7.6.3 Old-style casts between incomplete class types
521 6.7.5.5.2 Requirements for exceptions thrown by allocation functions
522 13.10.3.2 Array-to-pointer decay in template argument deduction
524 13.8.3 Can function-notation calls to operator functions be dependent?
525 13.9.2 Missing * in example
526 13.10.3.6 Confusing aspects in the specification of non-deduced contexts
530 7.7 Nontype template arguments in constant expressions
534 13 template-names and operator-function-ids
537 3 Definition of “signature”
538 11 Definition and usage of structure, POD-struct, POD-union, and POD class
540 9.8.2 Propagation of cv-qualifiers in reference-to-reference collapse
543 9.4 Value initialization and default constructors
551 13.9.3 When is inline permitted in an explicit instantiation?
557 6.5.4 Does argument-dependent lookup cause template instantiation?
558 5.3 Excluded characters in universal character names
559 13.8 Editing error in issue 382 resolution
568 11 Definition of POD is too strict
582 13.7.3 Template conversion functions
592 14.3 Exceptions during construction of local static objects
594 6.7.3 Coordinating issues 119 and 404 with delegating constructors
603 13.6 Type equivalence and unsigned overflow
606 13.10.3.2 Template argument deduction for rvalue references
613 11.4 Unevaluated uses of non-static class members
614 7.6.5 Results of integer / and %
620 11.4 Declaration order in layout-compatible POD structs
624 7.6.2.8 Overflow in calculating size of allocation
629 9.2.9.7 auto parsing ambiguity
632 9.4.2 Brace-enclosed initializer for scalar member of aggregate
634 7.6.1.3 Conditionally-supported behavior for non-POD objects passed to ellipsis redux
637 6.9.1 Sequencing rules and example disagree
639 6.9.1 What makes side effects “different” from one another?
644 6.8 Should a trivial class type be a literal type?
647 9.2.6 Non-constexpr instances of constexpr constructor templates
648 9.2.6 Constant expressions in constexpr initializers
649 6.7.6 Optionally ill-formed extended alignment requests
651 9.2.9.3 Problems in decltype specification and examples
654 7.3.12 Conversions to and from nullptr_t
659 7.6.2.6 Alignment of function types
660 9.7.1 Unnamed scoped enumerations
661 7.6.9 Semantics of arithmetic comparisons
663 _N2691_.E Valid Cyrillic identifier characters
666 13.8 Dependent qualified-ids without the typename keyword
671 7.6.1.9 Explicit conversion from a scoped enumeration type to integral type
677 11.4.7 Deleted operator delete and virtual destructors
679 13.6 Equivalence of template-ids and operator function templates
681 9.3.4.6 Restrictions on declarators with late-specified return types
683 11.4.5.3 Requirements for trivial subobject special functions
684 7.7 Constant expressions involving the address of an automatic variable
686 9.3.2 Type declarations/definitions in type-specifier-seqs and type-ids
688 6.9.3.2 Constexpr constructors and static initialization


Issues with "CD2" Status:

Issue Section Title
257 11.9.3 Abstract base constructors and virtual base initialization
374 9.3.4 Can explicit specialization outside namespace use qualified name?
408 13.7.2.5 sizeof applied to unknown-bound array static data member of template
438 7 Possible flaw in wording for multiple accesses to object between sequence points
481 6.4 Scope of template parameters
490 6.5.3 Name lookup in friend declarations
493 13.10.3.4 Type deduction from a bool context
495 12.2.4 Overload resolution with template and non-template conversion functions
499 14.2 Throwing an array of unknown size
527 6.6 Problems with linkage of types
541 13.8.3.3 Dependent function types
542 11.9 Value initialization of arrays of POD-structs
556 7.6.19 Conflicting requirements for acceptable aliasing
561 13.8.4.2 Internal linkage functions in dependent name lookup
564 9.11 Agreement of language linkage or linkage-specifications?
569 9.1 Spurious semicolons at namespace scope should be allowed
570 6.3 Are references subject to the ODR?
571 6.6 References declared const
576 9.2.4 Typedefs in function definitions
587 7.6.16 Lvalue operands of a conditional expression differing only in cv-qualification
588 13.8.3 Searching dependent bases of classes local to function templates
589 9.4.4 Direct binding of class and array rvalues in reference initialization
598 6.5.4 Associated namespaces of overloaded functions and function templates
599 7.6.2.9 Deleting a null function pointer
601 15.2 Type of literals in preprocessing expressions
604 12.2.2.4 Argument list for overload resolution in copy-initialization
608 11.7.3 Determining the final overrider of a virtual function
611 9.4 Zero-initializing references
612 6.9.1 Requirements on a conforming implementation
618 15.2 Casts in preprocessor conditional expressions
625 9.2.9.7 Use of auto as a template-argument
626 15.6.3 Preprocessor string literals
628 9.7.1 The values of an enumeration with no enumerator
630 5.3 Equality of narrow and wide character values in the basic character set
633 6.1 Specifications for variables that should also apply to references
638 13.7.5 Explicit specialization and friendship
641 12.2.3 Overload resolution and conversion-to-same-type operators
642 6.4.3 Definition and use of “block scope” and “local scope”
645 11.4 Are bit-field and non-bit-field members layout compatible?
650 6.7.7 Order of destruction for temporaries bound to the returned value of a function
652 7.7 Compile-time evaluation of floating-point expressions
653 11.4.6 Copy assignment of unions
656 9.4.4 Direct binding to the result of a conversion operator
657 13.10.3 Abstract class parameter in synthesized declaration
658 7.6.1.10 Defining reinterpret_cast for pointer types
664 9.4.4 Direct binding of references to non-class rvalue references
665 7.6.1.7 Problems in the specification of dynamic_cast
667 11.4.5.3 Trivial special member functions that cannot be implicitly defined
668 14.6.2 Throwing an exception from the destructor of a local static object
672 7.6.2.8 Sequencing of initialization in new-expressions
680 11.4.5.3 What is a move constructor?
685 7.3.7 Integral promotion of enumeration ignores fixed underlying type
690 3 The dynamic type of an rvalue reference
693 7.3.3 New string types and deprecated conversion
695 7 Compile-time calculation errors in constexpr functions
699 9.2.6 Must constexpr member functions be defined in the class member-specification?
701 9.3.4.5 When is the array-to-pointer conversion applied?
702 12.2.4.3 Preferring conversion to std::initializer_list
703 9.4.5 Narrowing for literals that cannot be exactly represented
704 12.2.2.2 To which postfix-expressions does overload resolution apply?
705 6.5.4 Suppressing argument-dependent lookup via parentheses
707 7.3.11 Undefined behavior in integral-to-floating conversions
710 11.9.5 Data races during construction
711 9.2.9.7 auto with braced-init-list
713 9.3.4.6 Unclear note about cv-qualified function types
714 11.4.9.3 Static const data members and braced-init-lists
715 7.7 Class member access constant expressions
716 11.5 Specifications that should apply only to non-static union data members
717 9.2.2 Unintentional restrictions on the use of thread_local
719 6.1 Specifications for operator-function-id that should also apply to literal-operator-id
720 7.5.6 Need examples of lambda-expressions
721 7.7 Where must a variable be initialized to be used in a constant expression?
722 7.6.1.3 Can nullptr be passed to an ellipsis?
726 6.9.2 Atomic and non-atomic objects in the memory model
730 13.9.4 Explicit specializations of members of non-template classes
731 7.6.1.5 Omitted reference qualification of member function type
732 9.5 Late-specified return types in function definitions
734 7.6.1.10 Are unique addresses required for namespace-scope variables?
735 _N4885_6.7.5.5.4 Missing case in specification of safely-derived pointers
737 9.4.3 Uninitialized trailing characters in string initialization
740 6.9.2 Incorrect note on data races
743 _N4567_.5.1.1 Use of decltype in a nested-name-specifier
744 13.4.4 Matching template arguments with template template parameters with parameter packs
746 9.2.9.7 Use of auto in new-expressions
749 12.5 References to function types with a cv-qualifier or ref-qualifier
750 7.5.6.2 Implementation constraints on reference-only closure objects
751 7.5.6.2 Deriving from closure classes
752 7.5.6 Name lookup in nested lambda-expressions
753 7.5.6.3 Array names in lambda capture sets
754 7.5.6 Lambda expressions in default arguments of block-scope function declarations
756 7.5.6.2 Dropping cv-qualification on members of closure objects
757 6.6 Types without linkage in declarations
759 7.5.6.2 Destruction of closure objects
760 _N4567_.5.1.1 this inside a nested class of a non-static member function
761 7.5.6.2 Inferred return type of closure object call operator
762 7.5.6 Name lookup in the compound-statement of a lambda expression
763 7.5.6.2 Is a closure object's operator() inline?
764 7.5.6.3 Capturing unused variables in a lambda expression
765 9.2.3 Local types in inline functions with external linkage
766 7.5.6 Where may lambda expressions appear?
767 7.5.6 void and other unnamed lambda-parameters
768 7.5.6 Ellipsis in a lambda parameter list
769 7.5.6 Initialization of closure objects
770 9.3 Ambiguity in late-specified return type
771 7.5.6.2 Move-construction of reference members of closure objects
772 7.5.6.3 capture-default in lambdas in local default arguments
774 7.5.6.2 Can a closure class be a POD?
775 7.5.6.3 Capturing references to functions
776 6.9.3.3 Delegating constructors, destructors, and std::exit
777 9.3.4.7 Default arguments and parameter packs
779 7.5.6.2 Rvalue reference members of closure objects?
782 7.5.6 Lambda expressions and argument-dependent lookup
785 6.9.1 “Execution sequence” is inappropriate phraseology
786 6.9.2 Definition of “thread”
787 5.2 Unnecessary lexical undefined behavior
788 5.3 Relationship between locale and values of the execution character set
789 _N4140_.2.4 Deprecating trigraphs
790 5.13.5 Concatenation of raw and non-raw string literals
792 6.9.3.1 Effects of std::quick_exit
793 6.7.3 Use of class members during destruction
796 7.5.6 Lifetime of a closure object with members captured by reference
797 7.5.6.2 Converting a no-capture lambda to a function type
799 7.6.1.10 Can reinterpret_cast be used to cast an operand to its own type?
801 7.6.1.11 Casting away constness in a cast to rvalue reference type
803 7.6.2.5 sizeof an enumeration type with a fixed underlying type
804 7.6.2.8 Deducing the type in new auto(x)
805 7.6.2.8 Which exception to throw for overflow in array size calculation
806 7.7 Enumeration types in integral constant expressions
808 9.2 Non-type decl-specifiers versus max-munch
809 9.2.2 Deprecation of the register keyword
810 9.2.2 Block-scope thread_local variables should be implicitly static
811 9.2.9.2 Unclear implications of const-qualification
812 9.8.2 Duplicate names in inline namespaces
814 9.12 Attribute to indicate that a function throws nothing
815 9.12.1 Parameter pack expansion inside attributes
816 _N3225_.7.6.4 Diagnosing violations of [[final]]
817 _N3225_.7.6.4 Meaning of [[final]] applied to a class definition
818 9.3.4.6 Function parameter packs in non-final positions
820 13 Deprecation of export
823 13.4.3 Literal types with constexpr conversions as non-type template arguments
828 14.2 Destruction of exception objects
830 14.5 Deprecating exception specifications
831 Annex B Limit on recursively nested template instantiations
832 5.9 Value of preprocessing numbers
833 7.6.1.9 Explicit conversion of a scoped enumeration value to a floating type
834 5.13.5 What is an “ordinary string literal”?
835 7 Scoped enumerations and the “usual arithmetic conversions”
840 13.2 Rvalue references as nontype template parameters
842 7.6.1.10 Casting to rvalue reference type
845 9.5 What is the “first declaration” of an explicit specialization?
846 7.2.1 Rvalue references to functions
847 13.10.3.2 Error in rvalue reference deduction example
850 _N4567_.5.1.1 Restrictions on use of non-static data members
853 _N4885_6.7.5.5.4 Support for relaxed pointer safety
854 7.6.7 Left shift and unsigned extended types
855 7.6.19 Incorrect comments in braced-init-list assignment example
858 7 Example binding an rvalue reference to an lvalue
861 6.5.5.3 Unintended ambiguity in inline namespace lookup
862 9.7.1 Undefined behavior with enumerator value overflow
863 7.6.1 Rvalue reference cast to incomplete type
865 9.4.5 Initializing a std::initializer_list
869 9.4 Uninitialized thread_local objects
872 5.13.5 Lexical issues with raw strings
874 11.4 Class-scope definitions of enumeration types
876 13.10.3.2 Type references in rvalue reference deduction specification
877 12.2.3 Viable functions and binding references to rvalues
879 12.5 Missing built-in comparison operators for pointer types
880 12.5 Built-in conditional operator for scoped enumerations
882 6.9.3.1 Defining main as deleted
883 6.8 std::memcpy vs std::memmove
884 13.9.4 Defining an explicitly-specialized static data member
886 9.4.2 Member initializers and aggregates
887 11.4.5.3 Move construction of thrown object
888 11.9.3 Union member initializers
891 7.6.1.11 const_cast to rvalue reference from objectless rvalue
896 9.4.4 Rvalue references and rvalue-reference conversion functions
899 12.2.2.5 Explicit conversion functions in direct class initialization
904 7.5.6.3 Parameter packs in lambda-captures
905 11 Explicit defaulted copy constructors and trivial copyability
906 9.5 Which special member functions can be defaulted?
908 9.5 Deleted global allocation and deallocation functions
910 11.4.5.3 Move constructors and implicitly-declared copy constructors
913 13.10.3.4 Deduction rules for array- and function-type conversion functions
915 9.5 Deleted specializations of member function templates
919 9.8.2 Contradictions regarding inline namespaces
920 9.3.4 Interaction of inline namespaces and using-declarations
921 9.8.2 Unclear specification of inline namespaces
922 11.4.5 Implicit default constructor definitions and const variant members
923 13.9.4 Inline explicit specializations
926 9.8.2.2 Inline unnamed namespaces
927 11.4.5 Implicitly-deleted default constructors and member initializers
928 9.5 Defaulting a function that would be implicitly defined as deleted
929 13.7.8 What is a template alias?
930 7.6.2.6 alignof with incomplete array type
931 5.13.9 Confusing reference to the length of a user-defined string literal
932 5.13.5 UCNs in closing delimiters of raw string literals
933 5.13.3 32-bit UCNs with 16-bit wchar_t
934 9.4.5 List-initialization of references
935 12.6 Missing overloads for character types for user-defined literals
936 9.4.3 Array initialization with new string literals
939 11.7.3 Explicitly checking virtual function overriding
940 9.2.2 Global anonymous unions
942 6.1 Is this an entity?
946 6.9.3.3 Order of destruction of local static objects and calls to std::atexit
950 9.2.9.3 Use of decltype as a class-name
951 9.12 Problems with attribute-specifiers
953 12.2.4.2.5 Rvalue references and function viability
955 7.5.6.2 Can a closure type's operator() be virtual?
956 9.3.4.6 Function prototype scope with late-specified return types
957 9.12.1 Alternative tokens and attribute-tokens
959 9.12.2 Alignment attribute for class and enumeration types
960 11.7.3 Covariant functions and lvalue/rvalue references
961 12.2.4.3 Overload resolution and conversion of std::nullptr_t to bool
962 9.2.9.5 Attributes appertaining to class and enum types
963 7.6.9 Comparing nullptr with 0
965 9.12.4 Limiting the applicability of the carries_dependency attribute
966 6.6 Nested types without linkage
968 9.12.1 Syntactic ambiguity of the attribute notation
969 13.9.3 Explicit instantiation declarations of class template specializations
970 9.12 Consistent use of “appertain” and “apply”
973 14.5 Function types in exception-specifications
976 13.10.3.4 Deduction for const T& conversion operators
978 12.2.4.2 Incorrect specification for copy initialization
979 9.3 Position of attribute-specifier in declarator syntax
980 13.9.3 Explicit instantiation of a member of a class template
983 7.6.2.2 Ambiguous pointer-to-member constant
984 9.2.9.7 “Deduced type” is unclear in auto type deduction
986 9.8.4 Transitivity of using-directives versus qualified lookup
988 9.2.9.3 Reference-to-reference collapsing with decltype
989 9.4.5 Misplaced list-initialization example
990 9.4.5 Value initialization with multiple initializer-list constructors
991 9.2.6 Reference parameters of constexpr functions and constructors
995 13.9.3 Incorrect example for using-declaration and explicit instantiation
999 12.2 “Implicit” or “implied” object argument/parameter?
1000 6.5.5.2 Mistaking member typedefs for constructors
1010 7.7 Address of object with dynamic storage duration in constant expression


Issues with "C++11" Status:

Issue Section Title
96 13.3 Syntactic disambiguation using the template keyword
248 _N2691_.E Identifier characters
341 9.11 extern "C" namespace member function versus global variable
355 11 Global-scope :: in nested-name-specifier
373 6.5.7 Lookup on namespace qualified name in using-directive
407 9.2.4 Named class with associated typedef: two names or one?
431 13.3 Defect in wording in 14.2
448 13.8.2 Set of template functions in call with dependent explicit argument
458 13.8.2 Hiding of member template parameters by other members
475 14.6.3 When is std::uncaught_exception() true? (take 2)
502 13.8.3.2 Dependency of nested enumerations and enumerators
508 9.4 Non-constructed value-initialized objects
531 13.9.4 Defining members of explicit specializations
532 13.7.7.3 Member/nonmember operator template partial ordering
546 13.9.3 Explicit instantiation of class template members
547 9.3.4.6 Partial specialization on member function types
572 7.3 Standard conversions for non-built-in types
573 7.6.1.10 Conversions between function pointers and void*
575 13.10.3 Criteria for deduction failure
580 11.8 Access in template-parameters of member and friend definitions
590 13.8.3.2 Nested classes and the “current instantiation”
602 13.8.2 When is the injected-class-name of a class template a template?
605 13.9.4 Linkage of explicit specializations
615 9.4 Incorrect description of variables that can be initialized
619 6.8 Completeness of array types
621 13.9.4 Template argument deduction from function return types
655 11.9.3 Initialization not specified for forwarding constructors
674 13.7.5 “matching specialization” for a friend declaration
676 6.2 static_assert-declarations and general requirements for declarations
678 6.3 Language linkage of member function parameter types and the ODR
691 13.2 Template parameter packs in class template partial specializations
692 13.10.3.6 Partial ordering of variadic class template partial specializations
694 9.4 Zero- and value-initialization of union objects
696 11.6 Use of block-scope constants in local classes
700 9.2.6 Constexpr member functions of class templates
709 13.10.3 Enumeration names as nested-name-specifiers in deduction failure
738 11.4.5 constexpr not permitted by the syntax of constructor declarations
741 11.4.10 “plain” long long bit-fields
758 6.2 Missing cases of declarations that are not definitions
773 13.4.3 Parentheses in address non-type template arguments
778 13.2 Template parameter packs in non-type template parameters
784 4.2 List of incompatibilities with the previous Standard
798 7.6.1.2 Overloaded subscript operator described in clause 5
837 9.2.6 Constexpr functions and return braced-init-list
838 11.9.3 Use of this in a brace-or-equal-initializer
860 9.2.6 Explicit qualification of constexpr member functions
864 8.6.5 braced-init-list in the range-based for statement
873 13.10.3.6 Deducing rvalue references in declarative contexts
892 9.2.6 Missing requirements for constexpr constructors
898 9.2.6 Declarations in constexpr functions
924 11.4 alias-declaration as a class member
938 9.4.2 Initializer lists and array new
941 13.9.4 Explicit specialization of deleted function template
945 _N4567_.5.1.1 Use of this in a late-specified return type
948 8.5 constexpr in conditions
964 7.2.1 Incorrect description of when the lvalue-to-rvalue conversion applies
971 14.4 Incorrect treatment of exception-declarations
972 9.12.1 Allowing multiple attribute-specifiers
981 6.8 Constexpr constructor templates and literal types
985 5.5 Alternative tokens and user-defined literals
993 13.8.4.1 Freedom to perform instantiation at the end of the translation unit
994 9.3.4.6 braced-init-list as a default argument
996 13.7.6 Ambiguous partial specializations of member class templates
997 6.5.4 Argument-dependent lookup and dependent function template parameter types
1004 13.8.2 Injected-class-names as arguments for template template parameters
1006 13.2 std::nullptr_t as a non-type template parameter
1009 13 Missing cases in the declarator-id of a function template declaration
1011 7.6.1.9 Standard conversions that cannot be inverted
1012 9.8.2.2 Undeprecating static
1015 6.5.4 Template arguments and argument-dependent lookup
1016 12 Overloadable declarations, function templates, and references
1017 11.4.3 Member access transformation in unevaluated operands
1018 9.1 Ambiguity between simple-declaration and attribute-declaration
1020 11.4.5.3 Implicitly-defined copy constructors and explicit base class constructors
1022 9.7.1 Can an enumeration variable have values outside the values of the enumeration?
1025 13.4.3 Use of a reference as a non-type template argument
1029 11.4.7 Type of a destructor call
1030 9.4.2 Evaluation order in initializer-lists used in aggregate initialization
1031 9.12.1 Optional elements in attributes
1032 13.7.4 Empty pack expansions
1033 9.12.2 Restrictions on alignment attributes
1034 7.5.6 Attributes for return statements in lambdas
1035 11.4 Omitted and required decl-specifiers
1036 9.12.2 Alignment attribute in an exception-declaration
1037 7.6.2.9 Requirements for operands of delete-expressions and deallocation functions
1042 9.1 Attributes in alias-declarations
1043 13.8.3.2 Qualified name lookup in the current instantiation
1044 6.4.2 Point of declaration for an alias-declaration
1047 13.8.3.4 When is typeid value-dependent?
1051 11.4.5.3 Reference members and generated copy constructors
1054 8.3 Lvalue-to-rvalue conversions in expression statements
1055 6.8.2 Permissible uses of void
1056 13.7.8 Template aliases, member definitions, and the current instantiation
1057 13.8.3.2 decltype and the current instantiation
1060 7.7 Scoped enumerators in integral constant expressions
1061 7.6.2.8 Negative array bounds in a new-expression
1062 7.5.6 Syntax of attribute-specifiers in lambdas
1063 _N3225_.7.6.5 [[hiding]] with non-attribute declarations
1064 11.4.5.3 Defaulted move constructor for a union
1065 _N3225_.7.6.5 [[hiding]] with [[override]]
1066 11.4.6 When is a copy/move assignment operator implicitly defined?
1068 13.2 Template aliases with default arguments and template parameter packs
1069 9.3.4.6 Incorrect function type with trailing-return-type
1070 9.4.2 Missing initializer clauses in aggregate initialization
1071 6.8 Literal class types and trivial default constructors
1072 11.4 Scoped enumerator with the same name as its containing class
1073 14.5 Merging dynamic-exception-specifications and noexcept-specifications
1074 13.8.3.4 Value-dependent noexcept-expressions
1075 9.2.9.3 Grammar does not allow template alias in type-name
1079 12.2.4.3 Overload resolution involving aggregate initialization
1080 11.4.5.3 Confusing relationship between templates and copy constructors
1081 11.4.7 Defaulted destructor and unusable operator delete
1082 11.4.5.3 Implicit copy function if subobject has none?
1083 7.6.1.3 Passing an object to ellipsis with non-trivial move constructor
1086 7.6.1.11 const_cast to rvalue reference to function type
1087 12.2.2.5 Additional applications of issue 899
1088 13.8.3.4 Dependent non-type template arguments
1090 6.7.6 Alignment of subobjects
1091 7.6.4 Inconsistent use of the term “object expression”
1094 7.6.1.9 Converting floating-point values to scoped enumeration types
1095 9.4.5 List-initialization of references
1096 13 Missing requirement for template definitions
1098 7.7 Pointer conversions in constant expressions
1099 7.7 Infinite recursion in constexpr functions
1100 7.7 constexpr conversion functions and non-type template arguments
1101 11.4.9.3 Non-integral initialized static data members
1102 6.9.1 Better example of undefined behavior
1103 5.2 Reversion of phase 1 and 2 transformations in raw string literals
1104 5.5 Global-scope template arguments vs the <: digraph
1105 5.10 Issues relating to TR 10176:2003
1106 5.13.8 Need more detail in nullptr keyword description
1107 5.13.9 Overload resolution for user-defined integer literals
1109 6.3 When is “use” a reference to the ODR meaning?
1111 _N4868_.6.5.6 Remove dual-scope lookup of member template names
1112 6.6 constexpr variables should have internal linkage like const
1113 6.6 Linkage of namespace member of unnamed namespace
1114 6.7.3 Incorrect use of placement new in example
1115 6.7.6 C-compatible alignment specification
1117 7 Incorrect note about xvalue member access expressions
1119 7.6.1.5 Missing case in description of member access ambiguity
1120 7.6.1.10 reinterpret_cast and void*
1121 7.6.2.2 Unnecessary ambiguity error in formation of pointer to member
1122 7.6.2.5 Circular definition of std::size_t
1123 7.6.2.7 Destructors should be noexcept by default
1125 7.7 Unclear definition of “potential constant expression”
1126 7.7 constexpr functions in const initializers
1127 7.7 Overload resolution in constexpr functions
1128 9.2 attribute-specifiers in decl-specifier-seqs
1129 9.2.6 Default nothrow for constexpr functions
1130 9.2.9.3 Function parameter type adjustments and decltype
1131 9.2.9.5 Template aliases in elaborated-type-specifiers
1133 _N3225_.7.6.5 Keywords vs attributes for control of hiding and overriding
1134 9.5.2 When is an explicitly-defaulted function defined?
1135 9.5.2 Explicitly-defaulted non-public special member functions
1136 9.5.2 Explicitly-defaulted explicit constructors
1137 9.5.2 Explicitly-defaulted virtual special member functions
1138 9.4.4 Rvalue-ness check for rvalue reference binding is wrong
1139 9.4.4 Rvalue reference binding to scalar xvalues
1140 11 Incorrect redefinition of POD class
1142 11.4.2 friend declaration of member function of containing class
1144 _N3225_.11.3 Remove access declarations
1145 11.4.5 Defaulting and triviality
1146 11.4.7 exception-specifications of defaulted functions
1147 11.4.7 Destructors should be default nothrow
1148 11.9.6 Copy elision and move construction of function parameters
1149 11.4.5.3 Trivial non-public copy operators in subobjects
1151 12.2.2.8 Overload resolution with initializer-list and non-list constructors
1152 12.2.3 Rules for determining existence of implicit conversion sequence
1153 12.3 Type matching in address of overloaded function
1154 13.4.3 Address of thread_local variable as non-type template argument
1155 13.4.3 Internal-linkage non-type template arguments
1156 13.7.7.3 Partial ordering in a non-call context
1158 13.7.8 Recursive instantiation via alias template
1159 13.7.8 Class and enumeration definitions in template aliases
1160 13.8.3.2 Definitions of template members and the current instantiation
1161 13.8 Dependent nested-name-specifier in a pointer-to-member declarator
1164 13.10.3.2 Partial ordering of f(T&) and f(T&&)
1165 14.3 Exceptions when destroying array elements
1166 14.4 exception-declarations that do not declare objects
1167 14.5 function-try-blocks for destructors
1168 14.6.2 Additional reasons to call std::terminate
1169 15.11 Missing feature macro for strict pointer safety
1170 13.10.3 Access checking during template argument deduction
1171 14.6.2 Partial stack unwinding with noexcept violation
1173 6.9.1 Unclear specification of effects of signal handling
1174 6.3 When is a pure virtual function “used?”
1175 5.13.9 Disambiguating user-defined literals
1176 6.9.2 Definition of release sequence
1177 6.9.2 Intra-thread dependency-ordered-before
1178 13.10.3.7 Deduction failure matching placement new
1180 6.7.6 Over-aligned class types
1181 6.8 What is a “built-in type?”
1182 13.7.4 Incorrect description of pack expansion syntax
1183 9.3.4.6 Expansion of parameter packs in declarators
1184 13.10.3.2 Argument conversions to nondeduced parameter types
1185 9.11 Misleading description of language linkage and member function types
1186 9.2.6 Non-dependent constexpr violations in function templates
1187 6.9.3.2 Problems in initialization example
1188 7.7 Type punning in constant expressions
1189 6.7.2 Address of distinct base class subobjects
1190 _N4885_6.7.5.5.4 Operations on non-safely-derived pointers
1191 11.4.5 Deleted subobject destructors and implicitly-defined constructors
1192 6.3 Inadvertent change to ODR and templates
1193 7.7 Use of address-constant pointers in constant expressions
1194 9.2.6 Constexpr references
1195 9.2.6 References to non-literal types in constexpr functions
1196 13.9.3 Definition required for explicit instantiation after explicit specialization?
1197 7.7 Constexpr arrays
1198 6.8 Literal types and copy constructors
1199 9.2.6 Deleted constexpr functions
1201 6.2 Are deleted and defaulted functions definitions?
1202 11.9.5 Calling virtual functions during destruction
1204 8.6 Specifiers in a for-range-declaration
1206 13.7.2 Defining opaque enumeration members of class templates
1207 11.4.3 Type of class member in trailing-return-type
1208 11.4.3 Explicit noexcept in defaulted definition
1210 6.4.2 Injection of elaborated-type-specifier in enumeration scope
1212 9.2.9.3 Non-function-call xvalues and decltype
1214 9.4 Kinds of initializers
1215 11 Definition of POD struct
1216 14.5 Exceptions “allowed” by a noexcept-specification
1218 14.4 What is the “currently-handled exception” in a multi-threaded program?
1219 6.8 Non-static data member initializers in constant expressions
1220 _N4868_.6.5.6 Looking up conversion-type-ids
1224 11.4.5.3 constexpr defaulted copy constructors
1225 9.2.6 constexpr constructors and virtual bases
1229 12.2.2.8 Overload resolution with empty braced-init-list argument
1231 13.7.4 Variadic templates requiring an empty pack expansion
1232 9.4.5 Creation of array temporaries using a braced-init-list
1233 13.8.3 Pack expansions and dependent calls
1234 9.3.2 abstract-declarator does not permit ... after ptr-operator
1235 13.7.7.3 “Unused” ellipsis and default arguments in partial ordering
1236 9.4.4 Inconsistently-interrelated examples
1237 6.7.7 Deprecated implicit copy assignment in example
1238 12.2.4.3 Overloading ambiguity binding reference to function
1239 5.13.9 Hexadecimal floating-point literals vs user-defined literals
1240 9.3.2 constexpr defaulted constructors
1241 11.4.7 Which members does a destructor destroy?
1242 11.9.3 Initializing variant class members
1243 9.3 Misleading footnote regarding multiple-declarator declarations
1244 13.6 Equivalence of alias templates and class templates
1245 13.7.2.2 Matching declarations involving decltype
1246 13.2 Non-deduced non-final parameter packs


Issues with "CD3" Status:

Issue Section Title
129 6.9.1 Stability of uninitialized auto variables
223 Annex D The meaning of deprecation
240 7.3.2 Uninitialized values and undefined behavior
292 7.6.2.8 Deallocation on exception in new before arguments evaluated
312 6.7.5.5.3 “use” of invalid pointer value not defined
332 9.3.4.6 cv-qualified void parameter types
342 7.6.2 Terminology: "indirection" versus "dereference"
344 11.4.7 Naming destructors
388 14.4 Catching base*& from a throw of derived*
462 6.7.7 Lifetime of temporaries bound to comma expressions
482 9.3.4 Qualified declarators in redeclarations
483 6.8.2 Normative requirements on integral ranges
496 6.8 Is a volatile-qualified type really a POD?
535 11.4.5.3 Copy construction without a copy constructor
539 9.2.9 Constraints on type-specifier-seq
565 9.9 Conflict rules for using-declarations naming function templates
577 9.3.4.6 void in an empty parameter list
583 7.6.9 Relational pointer comparisons against the null pointer constant
597 6.7.3 Conversions applied to out-of-lifetime non-POD lvalues
616 3 Definition of “indeterminate value”
623 6.7.5.5.3 Use of pointers to deallocated storage
631 8.5.2 Jumping into a “then” clause
675 11.4.10 Signedness of bit-field with typedef or template parameter type
712 6.3 Are integer constant operands of a conditional-expression “used?”
729 14.4 Qualification conversions and handlers of reference-to-pointer type
739 11.4.10 Signedness of plain bit-fields
755 7.5.6.3 Generalized lambda-captures
903 13.8.3.4 Value-dependent integral null pointer constants
912 5.13.3 Character literals and universal-character-names
974 7.5.6 Default arguments for lambdas
975 7.5.6 Restrictions on return type deduction for lambdas
977 9.7.1 When is an enumeration type complete?
1003 6.9.3.1 Acceptable definitions of main
1013 7.3.2 Uninitialized std::nullptr_t objects
1024 5.13.3 Limits on multicharacter literals
1048 7.5.6 auto deduction and lambda return type deduction.
1059 6.8.5 Cv-qualified array types (with rvalues)
1093 9.4 Value-initializing non-objects
1213 7.6.1.2 Array subscripting and xvalues
1226 9.3.4.7 Converting a braced-init-list default argument
1227 13.10.3 Mixing immediate and non-immediate contexts in deduction failure
1250 11.7.3 Cv-qualification of incomplete virtual function return types
1251 _N4750_.C.1.3 C compatibility: casting to unqualified void*
1260 6.3 Incorrect use of term “overloaded” in description of odr-use
1261 7 Explicit handling of cv-qualification with non-class prvalues
1262 13.10.3 Default template arguments and deduction failure
1264 7.7 Use of this in constexpr constructor
1265 9.2.9.7 Mixed use of the auto specifier
1267 14.5 Rvalue reference types in exception-specifications
1268 7.6.1.10 reinterpret_cast of an xvalue operand
1269 7.6.1.7 dynamic_cast of an xvalue operand
1270 9.4.5 Brace elision in array temporary initialization
1275 13.2 Incorrect comment in example of template parameter pack restriction
1282 14.5 Underspecified destructor exception-specification
1288 9.4.5 Reference list initialization
1290 9.4.5 Lifetime of the underlying array of an initializer_list member
1293 7.7 String literals in constant expressions
1295 9.4.4 Binding a reference to an rvalue bit-field
1296 13.8 Ill-formed template declarations (not just definitions)
1297 9.3 Misplaced function attribute-specifier
1298 12.2.4.3 Incorrect example in overload resolution
1301 9.4 Value initialization of union
1302 6.8.2 noexcept applied to expression of type void
1305 7.6.2.6 alignof applied to array of unknown size
1306 _N4868_.11.4.3.2 Modifying an object within a const member function
1308 11.4 Completeness of class type within an exception-specification
1310 6.5.5.2 What is an “acceptable lookup result?”
1311 7.7 Volatile lvalues in constant expressions
1312 7.7 Simulated reinterpret_cast in constant expressions
1313 7.7 Undefined pointer arithmetic in constant expressions
1318 11 Syntactic ambiguities with final
1320 7.6.1.9 Converting scoped enumerations to bool
1321 13.7.7.2 Equivalency of dependent calls
1324 9.4 Value initialization and defaulted constructors
1327 9.5.2 virt-specifier in a defaulted definition
1328 9.4.4 Conflict in reference binding vs overload resolution
1329 Annex B Recursive deduction substitutions
1330 13.10.3 Delayed instantiation of noexcept specifiers
1333 9.5.2 Omission of const in a defaulted copy constructor
1336 11.4.8.2 Definition of “converting constructor”
1340 7.6.4 Complete type in member pointer expressions
1345 11.9.3 Initialization of anonymous union class members
1346 9.2.9.7 expression-list initializers and the auto specifier
1347 9.2.9.7 Consistency of auto in multiple-declarator declarations
1350 _N4527_.12.9 Incorrect exception specification for inherited constructors
1352 6.4.7 Inconsistent class scope and completeness rules
1354 7.6.2.7 Destructor exceptions for temporaries in noexcept expressions
1355 9.5.2 Aggregates and “user-provided” constructors
1357 11.4 brace-or-equal-initializers for function and typedef members
1358 9.2.6 Unintentionally ill-formed constexpr function template instances
1359 9.2.6 constexpr union constructors
1361 6.8 Requirement on brace-or-equal-initializers of literal types
1362 6.3 Complete type required for implicit conversion to T&
1363 11 Triviality vs multiple default constructors
1364 7.7 constexpr function parameters
1365 7.7 Calling undefined constexpr functions
1366 9.2.6 Deleted constexpr constructors and virtual base classes
1367 7.7 Use of this in a constant expression
1368 9.4 Value initialization and defaulted constructors (part 2)
1369 9.2.6 Function invocation substitution of this
1370 15.6 identifier-list cannot contain ellipsis
1372 13.10.3.4 Cross-references incorrect in conversion function template argument deduction
1374 12.2.4.3 Qualification conversion vs difference in reference binding
1375 11.5 Reference to anonymous union?
1380 9.3.4.6 Type definitions in template-parameter parameter-declarations
1381 14.5 Implicitly-declared special member functions and default nothrow
1382 9.3 Dead code for constructor names
1383 7 Clarifying discarded-value expressions
1385 12.2.2.3 Syntactic forms of conversion functions for surrogate call functions
1387 13.10.3.6 Missing non-deduced context for decltype
1388 13.10.3.2 Missing non-deduced context following a function parameter pack
1392 12.2.2.7 Explicit conversion functions for references and non-references
1394 9.3.4.6 Incomplete types as parameters of deleted functions
1398 13.4.3 Non-type template parameters of type std::nullptr_t
1399 13.10.3.2 Deduction with multiple function parameter packs
1401 9.4.4 Similar types and reference compatibility
1402 11.4.5.3 Move functions too often deleted
1405 6.8 constexpr and mutable members of literal types
1406 13.7.7.3 ref-qualifiers and added parameters of non-static member function templates
1408 12.2.4.3 What is “the same aggregate initialization?”
1409 12.2.4.2.6 What is the second standard conversion sequence of a list-initialization sequence?
1410 12.2.4.3 Reference overload tiebreakers should apply to rvalue references
1411 11 More on global scope :: in nested-name-specifier
1412 7.6.1.9 Problems in specifying pointer conversions
1413 13.8.3.4 Missing cases of value-dependency
1415 6.6 Missing prohibition of block-scope definition of extern object
1416 7.6.1.8 Function cv-qualifiers and typeid
1418 9.4.5 Type of initializer_list backing array
1423 7.3.14 Convertibility of nullptr to bool
1425 11.4 Base-class subobjects of standard-layout structs
1428 6.8.5 Dynamic const objects
1431 14 Exceptions from other than throw-expressions
1435 9.3.4 template-id as the declarator for a class template constructor
1437 9.2.4 alignas in alias-declaration
1438 _N4885_6.7.5.5.4 Non-dereference use of invalid pointers
1439 _N4868_.9.8.2.3 Lookup and friend template declarations
1440 _N4567_.5.1.1 Acceptable decltype-specifiers used as nested-name-specifiers
1442 8.6.5 Argument-dependent lookup in the range-based for
1447 7.6.1.9 static_cast of bit-field lvalue to rvalue reference
1449 9.4.5 Narrowing conversion of negative value to unsigned type
1450 7.6.5 INT_MIN % -1
1453 6.8 Volatile members in literal classes?
1454 7.7 Passing constants through constexpr functions via references
1455 7.7 Lvalue converted constant expressions
1456 7.7 Address constant expression designating the one-past-the-end address
1457 7.6.7 Undefined behavior in left-shift
1458 7.6.2.2 Address of incomplete type vs operator&()
1462 13.10.3 Deduction failure vs “ill-formed, no diagnostic required”
1464 7.6.2.8 Negative array bound in a new-expression
1471 13.8.3.2 Nested type of non-dependent base
1472 6.3 odr-use of reference variables
1473 12.6 Syntax of literal-operator-id
1475 9.12.4 Errors in [[carries_dependency]] example
1476 3 Definition of user-defined type
1477 _N4868_.9.8.2.3 Definition of a friend outside its namespace
1479 12.6 Literal operators and default arguments
1480 7.7 Constant initialization via non-constant temporary
1481 12.4.7 Increment/decrement operators with reference parameters
1482 6.4.2 Point of declaration of enumeration
1487 _N4527_.12.9 When are inheriting constructors declared?
1489 6.9.3.2 Is value-initialization of an array constant initialization?
1491 11.4.5.3 Move construction and rvalue reference members
1494 9.4.5 Temporary initialization for reference binding in list-initialization
1495 13.7.6 Partial specialization of variadic class template
1502 9.4 Value initialization of unions with member initializers
1503 14.2 Exceptions during copy to exception object
1504 7.6.6 Pointer arithmetic after derived-base conversion
1506 9.4.5 Value category of initializer_list object
1507 9.4 Value initialization with trivial inaccessible default constructor
1510 9.3.4.3 cv-qualified references via decltype
1511 6.3 const volatile variables and the one-definition rule
1512 7.6.9 Pointer comparison vs qualification conversions
1515 6.8.2 Modulo 2n arithmetic for implicitly-unsigned types
1516 7.6.1.3 Definition of “virtual function call”
1522 9.4.5 Access checking for initializer_list array initialization
1527 7.6.19 Assignment from braced-init-list
1528 9.3 Repeated cv-qualifiers in declarators
1531 3 Definition of “access” (verb)
1532 13.9.3 Explicit instantiation and member templates
1533 13.7.4 Function pack expansion for member initialization
1535 7.7 typeid in core constant expressions
1537 7.7 Optional compile-time evaluation of constant expressions
1538 7.6.19 C-style cast in braced-init-list assignment
1539 6.8.2 Definition of “character type”
1541 8.7.4 cv void return types
1543 12.2.4.2.6 Implicit conversion sequence for empty initializer list
1544 9.2.2 Linkage of member of unnamed namespace
1550 7.6.16 Parenthesized throw-expression operand of conditional-expression
1553 7.6.2.5 sizeof and xvalue bit-fields
1556 12.2.2.5 Constructors and explicit conversion functions in direct initialization
1557 7.5.6.2 Language linkage of converted lambda function pointer
1559 7.6.2.8 String too long in initializer list of new-expression
1560 7.6.16 Gratuitous lvalue-to-rvalue conversion in conditional-expression with throw-expression operand
1563 12.3 List-initialization and overloaded function disambiguation
1588 9.2.9.7 Deducing cv-qualified auto
1597 9.2.6 Misleading constexpr example
1605 11.4.7 Misleading parenthetical comment for explicit destructor call
2035 13.7.6.2 Multi-section example is confusing
2114 _N4750_.C.3.5 Missing description of incompatibility from aggregate NSDMIs
2150 9.4.5 Initializer list array lifetime
2162 7.5.6.3 Capturing this by reference


Issues with "C++14" Status:

Issue Section Title
1287 9.4.4 Direct initialization vs “implicit” conversion in reference binding
1307 12.2.4.2.6 Overload resolution based on size of array initializer-list
1344 11.4.5.3 Adding new special member functions to a class via default arguments
1376 7.6.1.9 static_cast of temporary to rvalue reference
1417 9.3.4.6 Pointers/references to functions with cv-qualifiers or ref-qualifier
1424 14.3 When must sub-object destructors be accessible?
1441 6.9.1 Unclear wording for signal handler restrictions
1460 11.5 What is an empty union?
1466 6.9.2 Visible sequences of side effects are redundant
1493 11.4.5.3 Criteria for move-construction
1508 9.4.5 Template initializer-list constructors
1509 3 Definition of “non-template function”
1514 11.4.10 Ambiguity between enumeration definition and zero-length bit-field
1551 9.9 Wording problems in using-declaration specification
1562 11.9.3 Non-static data member initializers and union ctor-initializer
1567 _N4527_.12.9 Inheriting constructors and copy/move constructors
1569 13.10.3.6 Deducing a function parameter pack before ellipsis
1570 13.4.3 Address of subobject as non-type template argument
1575 _N4885_6.7.5.5.4 Incorrect definition of “strict pointer safety”
1576 7 Discarded-value volatile xvalues
1579 11.4.5.3 Return by converting move constructor
1583 6.9.1 Incorrect example of unspecified behavior
1587 9.2.6 constexpr initialization and nested anonymous unions
1592 13.4.4 When do template parameters match?
1593 11.4.5.3 “Parameter type” of special member functions
1595 9.2.6 Constructors “involved in” subobject initialization
1598 7.6.10 Criterion for equality of pointers to members
1601 7.3.7 Promotion of enumeration with fixed underlying type
1604 9.4.4 Double temporaries in reference initialization
1607 7.5.6 Lambdas in template parameters
1608 12.2.2.3 Operator lookup in trailing return type
1611 11.4.5 Deleted default constructor for abstract class
1612 7.5.6.3 Implicit lambda capture and anonymous unions
1613 7.5.6.3 Constant expressions and lambda capture
1618 9.7.1 Gratuitously-unsigned underlying enum type
1629 7.5.6.2 Can a closure class be a literal type?
1648 9.2.2 thread_local vs block extern declarations
1649 11.9.3 Error in the syntax of mem-initializer-list
1658 11.4.5 Deleted default constructor for abstract class via destructor
1660 11.4 member-declaration requirements and unnamed bit-fields
1662 7.5.6.3 Capturing function parameter packs
1664 7.5.6 Argument-dependent lookup of lambdas used in default arguments
1666 13.4.3 Address constant expressions
1669 6.9.3.1 auto return type for main
1673 12.2.4.2 Clarifying overload resolution for the second step of copy-initialization
1674 9.2.9.7 Return type deduction for address of function
1681 7.5.6.3 init-captures and nested lambdas
1684 9.2.6 Static constexpr member functions for non-literal classes
1687 12.2.2.3 Conversions of operands of built-in operators
1689 9.12.1 Syntactic nonterminal for operand of alignas
1690 6.5.4 Associated namespace for local type
1691 6.5.4 Argument-dependent lookup and opaque enumerations
1692 6.5.4 Associated namespaces of doubly-nested classes
1693 11.4 Superfluous semicolons in class definitions
1707 9.2.9.5 template in elaborated-type-specifier without nested-name-specifier
1716 9.3.4.7 When are default arguments evaluated?
1717 5.13.2 Missing specification of type of binary literal
1732 8.5 Defining types in conditions and range-based for statements
1737 13.8.3.2 Type dependence of call to a member of the current instantiation
1738 _N4527_.12.9 Explicit instantiation/specialization of inheriting constructor templates
1739 7.6.1.9 Conversion of floating point to enumeration
1740 14.5 Disambiguation of noexcept
1741 6.3 odr-use of class object in lvalue-to-rvalue conversion
1746 6.8 Are volatile scalar types trivially copyable?
1747 6.9.3.2 Constant initialization of reference to function
1759 5.13.5 UTF-8 code units in plain char
1760 7.5.6.3 Access of member corresponding to init-capture
1762 12.6 Reserved identifier used in literal-operator-id example
1764 6.5.2 Hiding of function from using-declaration by signature
1765 9.7.1 Overflow of enumeration used as enumerator value
1767 8.5.3 Scoped enumeration in a switch statement
1769 14.4 Catching a base class of the exception object
1770 13.10.3.6 Type matching of non-type template parameters and arguments
1772 7.5.6 __func__ in a lambda body
1773 7.3.2 Out-of-lifetime lvalue-to-rvalue conversion
1775 5.2 Undefined behavior of line splice in raw string literal
1778 9.5.2 exception-specification in explicitly-defaulted functions
1786 7.6.2.8 Effect of merging allocations on memory leakage
1787 7.3.2 Uninitialized unsigned char values


Issues with "CD4" Status:

Issue Section Title
92 14.5 Should exception-specifications be part of the type system?
212 13.9.2 Implicit instantiation is not described clearly enough
238 7 Precision and accuracy constraints on floating point
242 7.6.3 Interpretation of old-style casts
330 7.3.6 Qualification conversions and pointers to arrays of pointers
393 9.3.4.6 Pointer to array of unknown bound in template argument list in parameter
591 13.8.3 When a dependent base class is the current instantiation
609 9.2.9.2 What is a “top-level” cv-qualifier?
636 7.2.1 Dynamic type of objects and aliasing
670 9.4 Copy initialization via derived-to-base conversion in the second step
987 9.8 Which declarations introduce namespace members?
1021 _N4868_.9.8.2.3 Definitions of namespace members
1116 6.7.3 Aliasing of union members
1247 9.2.4 Restriction on alias name appearing in type-id
1274 8.6.5 Common nonterminal for expression and braced-init-list
1284 6.7.3 Should the lifetime of an array be independent of that of its elements?
1292 13.8.3 Dependent calls with braced-init-lists containing a pack expansion
1309 13.8.3.2 Incorrect note regarding lookup of a member of the current instantiation
1315 13.7.6.1 Restrictions on non-type template arguments in partial specializations
1338 6.7.5.5.2 Aliasing and allocation functions
1351 14.5 Problems with implicitly-declared exception-specifications
1356 14.5 Exception specifications of copy assignment operators with virtual bases
1391 13.10.2 Conversions to parameter types with non-deduced template arguments
1397 11.4 Class completeness in non-static data member initializers
1446 13.7.7.3 Member function with no ref-qualifier and non-member function with rvalue reference
1451 13.4.3 Objects with no linkage in non-type template arguments
1465 7.6.2.7 noexcept and std::bad_array_new_length
1467 9.4.5 List-initialization of aggregate from same-type object
1484 13.9.2 Unused local classes of function templates
1490 9.4.5 List-initialization from a string literal
1492 11.4.7 Exception specifications on template destructors
1496 11.3 Triviality with deleted and missing default constructors
1518 9.4.5 Explicit default constructors and copy-list-initialization
1552 9.5.2 exception-specifications and defaulted special member functions
1558 13.7.8 Unused arguments in alias template specializations
1561 9.4.2 Aggregates with empty base classes
1571 9.4.4 cv-qualification for indirect reference binding via conversion function
1572 9.4.4 Incorrect example for rvalue reference binding via conversion function
1573 _N4527_.12.9 Inherited constructor characteristics
1589 12.2.4.3 Ambiguous ranking of list-initialization sequences
1590 11.4.5.3 Bypassing non-copy/move constructor copying
1591 13.10.3.2 Deducing array bound and element type from initializer list
1596 7.6.9 Non-array objects as array[1]
1599 9.4.5 Lifetime of initializer_list underlying array
1600 9.2.9.3 Erroneous reference initialization in example
1603 6.6 Errors resulting from giving unnamed namespaces internal linkage
1614 6.3 Address of pure virtual function vs odr-use
1615 9.12.2 Alignment of types, variables, and members
1630 9.4 Multiple default constructor templates
1631 12.2.4.2.6 Incorrect overload resolution for single-element initializer-list
1633 9.4 Copy-initialization in member initialization
1638 9.7.1 Declaring an explicit specialization of a scoped enumeration
1639 14.5 exception-specifications and pointer/pointer-to-member expressions
1645 _N4527_.12.9 Identical inheriting constructors via default arguments
1652 7.6.10 Object addresses in constexpr expressions
1653 7.6.2.3 Removing deprecated increment of bool
1657 9.8.2 Attributes for namespaces and enumerators
1672 11.4 Layout compatibility with multiple empty bases
1683 7.7 Incorrect example after constexpr changes
1686 6.6 Which variables are “explicitly declared const?”
1694 7.7 Restriction on reference to temporary as a constant expression
1696 6.7.7 Temporary lifetime and non-static data member initializers
1697 6.7.7 Lifetime extension and copy elision
1705 13.10.3.5 Unclear specification of “more specialized”
1708 9.11 overly-strict requirements for names with C language linkage
1712 9.2.6 constexpr variable template declarations
1715 _N4527_.12.9 Access and inherited constructor templates
1719 11.4 Layout compatibility and cv-qualification revisited
1722 7.5.6.2 Should lambda to function pointer conversion function be noexcept?
1734 11.4.5.3 Nontrivial deleted copy functions
1736 _N4527_.12.9 Inheriting constructor templates in a local class
1744 6.9.3.2 Unordered initialization for variable template specializations
1748 7.6.2.8 Placement new with a null pointer
1750 12.2.2.5 “Argument” vs “parameter”
1751 6.7.3 Non-trivial operations vs non-trivial initialization
1752 11.9.3 Right-recursion in mem-initializer-list
1753 6.5.5 decltype-specifier in nested-name-specifier of destructor
1756 9.4.5 Direct-list-initialization of a non-class object
1757 7.7 Const integral subobjects
1758 12.2.2.8 Explicit conversion in copy/move list initialization
1766 9.7.1 Values outside the range of the values of an enumeration
1774 14.3 Discrepancy between subobject destruction and stack unwinding
1776 6.7.3 Replacement of class objects containing reference members
1777 14.5 Empty pack expansion in dynamic-exception-specification
1779 13.8.3.3 Type dependency of __func__
1780 7.5.6.2 Explicit instantiation/specialization of generic lambda operator()
1782 9.4 Form of initialization for nullptr_t to bool conversion
1788 7.6.2.9 Sized deallocation of array of non-class type
1791 9.5.1 Incorrect restrictions on cv-qualifier-seq and ref-qualifier
1793 9.2.2 thread_local in explicit specializations
1795 9.8.2 Disambiguating original-namespace-definition and extension-namespace-definition
1796 5.3 Is all-bits-zero for null characters a meaningful requirement?
1797 6.8.2 Are all bit patterns of unsigned char distinct numbers?
1799 9.2.2 mutable and non-explicit const qualification
1800 7.6.2.2 Pointer to member of nested anonymous union
1801 11.5 Kind of expression referring to member of anonymous union
1802 5.13.5 char16_t string literals and surrogate pairs
1804 13.7.5 Partial specialization and friendship
1805 7.6.16 Conversions of array operands in conditional-expressions
1806 11.4.6 Virtual bases and move-assignment
1807 14.3 Order of destruction of array elements after an exception
1809 13.10.3 Narrowing and template argument deduction
1810 5.13.9 Invalid ud-suffixes
1811 11.4.7 Lookup of deallocation function in a virtual destructor definition
1813 11 Direct vs indirect bases in standard-layout classes
1814 9.3.4.7 Default arguments in lambda-expressions
1815 9.4.2 Lifetime extension in aggregate initialization
1816 7.3.9 Unclear specification of bit-field values
1819 13.7.6.1 Acceptable scopes for definition of partial specialization
1823 9.2.3 String literal uniqueness in inline functions
1824 9.3.4.6 Completeness of return type vs point of instantiation
1830 9.1 Repeated specifiers
1832 7.6.1.9 Casting to incomplete enumeration
1834 6.9.3.2 Constant initialization binding a reference to an xvalue
1838 _N4868_.9.8.2.3 Definition via unqualified-id and using-declaration
1843 7.6.16 Bit-field in conditional operator with throw operand
1846 9.5.2 Declaring explicitly-defaulted implicitly-deleted functions
1847 13.10.3.6 Clarifying compatibility during partial ordering
1848 11.4.7 Parenthesized constructor and destructor declarators
1850 13.8 Differences between definition context and point of instantiation
1851 7.6.2.8 decltype(auto) in new-expressions
1852 9.2.9.3 Wording issues regarding decltype(auto)
1858 7.6.10 Comparing pointers to union members
1861 11.4.10 Values of a bit-field
1863 14.2 Requirements on thrown object type to support std::current_exception()
1865 7.6.6 Pointer arithmetic and multi-level qualification conversions
1866 14.3 Initializing variant members with non-trivial destructors
1870 6.2 Contradictory wording about definitions vs explicit specialization/instantiation
1872 9.2.6 Instantiations of constexpr templates that cannot appear in constant expressions
1873 11.8.3 Protected member access from derived class friends
1874 13.2 Type vs non-type template parameters with class keyword
1875 6.4.7 Reordering declarations in class scope
1877 9.2.9.7 Return type deduction from return with no operand
1878 9.2.9.7 operator auto template
1880 7.6.1.3 When are parameter objects destroyed?
1881 11 Standard-layout classes and unnamed bit-fields
1882 _N4140_.17.6.4.3.2 Reserved names without library use
1885 7.6.1.3 Return value of a function is underspecified
1886 6.9.3.1 Language linkage for main()
1887 9.9 Problems with :: as nested-name-specifier
1888 11.4.5 Implicitly-declared default constructors and explicit
1891 7.5.6.2 Move constructor/assignment for closure class
1892 9.2.9.7 Use of auto in function type
1895 7.6.16 Deleted conversions in conditional operator operands
1899 13.8.3.4 Value-dependent constant expressions
1902 12.2.4.2 What makes a conversion “otherwise ill-formed”?
1903 9.9 What declarations are introduced by a non-member using-declaration?
1909 11.4 Member class template with the same name as the class
1911 9.2.6 constexpr constructor with non-literal base class
1916 11.4.5.3 “Same cv-unqualified type”
1920 _N4778_.7.6.1.4 Qualification mismatch in pseudo-destructor-name
1922 13.8.2 Injected class template names and default arguments
1925 7.6.20 Bit-field prvalues
1926 6.3 Potential results of subscript operator
1929 _N4567_.5.1.1 template keyword following namespace nested-name-specifier
1930 9.2.2 init-declarator-list vs member-declarator-list
1932 7.6.16 Bit-field results of conditional operators
1940 11.5 static_assert in anonymous unions
1941 _N4527_.12.9 SFINAE and inherited constructor default arguments
1942 7.5.6 Incorrect reference to trailing-return-type
1946 14.5 exception-specifications vs pointer dereference
1949 6.9.1 “sequenced after” instead of “sequenced before”
1951 6.8 Cv-qualification and literal types
1952 7.7 Constant expressions and library undefined behavior
1955 15.2 #elif with invalid controlling expression
1956 6.7.5.4 Reuse of storage of automatic variables
1958 9.2.9.7 decltype(auto) with parenthesized initializer
1959 _N4527_.12.9 Inadvertently inherited copy constructor
1963 5.10 Implementation-defined identifier characters
1966 9.7.1 Colon following enumeration elaborated-type-specifier
1967 11.9.6 Temporary lifetime and move-elision
1971 7.6.2.2 Unclear disambiguation of destructor and operator~
1975 14.5 Permissible declarations for exception-specifications
1978 11.4.8.2 Redundant description of explicit constructor use
1981 7.3 Implicit contextual conversions and explicit
1988 13.8.3.2 Ambiguity between dependent and non-dependent bases in implicit member access
1990 9.1 Ambiguity due to optional decl-specifier-seq
1991 _N4527_.12.9 Inheriting constructors vs default arguments
1992 7.6.2.8 new (std::nothrow) int[N] can throw
1995 14.5 exception-specifications and non-type template parameters
1999 5.2 Representation of source characters as universal-character-names
2000 5.4 header-name outside #include directive
2001 15 non-directive is underspecified
2004 7.7 Unions with mutable members in constant expressions
2006 6.8.4 Cv-qualified void types
2008 13.4 Default template-arguments underspecified
2010 14.5 exception-specifications and conversion operators
2012 6.7.5 Lifetime of references
2015 9.5.3 odr-use of deleted virtual functions
2016 11.4.8.3 Confusing wording in description of conversion function
2017 8.7.4 Flowing off end is not equivalent to no-expression return
2019 6.7.5.6 Member references omitted from description of storage duration
2022 7.7 Copy elision in constant expressions
2024 13.8.3.2 Dependent types and unexpanded parameter packs
2026 6.9.3 Zero-initialization and constexpr
2027 9.12.2 Unclear requirements for multiple alignas specifiers
2031 C.6.3 Missing incompatibility for &&
2032 13.2 Default template-arguments of variable templates
2033 13.7.6.1 Redundant restriction on partial specialization argument
2038 C.4 Document C++14 incompatibility of new braced deduction rule
2039 14.5 Constant conversions to bool
2040 9.3 trailing-return-type no longer ambiguous
2041 13.9.4 Namespace for explicit class template specialization
2044 9.2.9.7 decltype(auto) and void
2047 14.5 Coordinating “throws anything” specifications
2052 12.4 Template argument deduction vs overloaded operators
2061 9.8.2 Inline namespace after simplifications
2063 _N4868_.6.4.1 Type/nontype hiding in class scope
2064 13.6 Conflicting specifications for dependent decltype-specifiers
2066 13.8.3.4 Does type-dependent imply value-dependent?
2068 11.4.7 When can/must a defaulted virtual destructor be defined?
2069 11.4.7 Do destructors have names?
2071 9.2.4 typedef with no declarator
2075 12.2.4.2.6 Passing short initializer lists to array reference parameters
2076 12.2.4.2 List-initialization of arguments for constructor parameters
2079 9.12.1 [[ appearing in a balanced-token-seq
2082 9.3.4.7 Referring to parameters in unevaluated operands of default arguments
2084 11.4.5 NSDMIs and deleted union default constructors
2085 6.3 Invalid example of adding special member function via default argument
2091 13.10.3.6 Deducing reference non-type template arguments
2093 14.4 Qualification conversion for pointer-to-member handler matching
2095 7.5.6.3 Capturing rvalue references to functions by copy
2096 6.8 Constraints on literal unions
2098 14.6.3 Is uncaught_exceptions() per-thread?
2099 9.3.4.5 Inferring the bound of an array static data member
2101 13.8.3 Incorrect description of type- and value-dependence
2104 6.3 Internal-linkage constexpr references and ODR requirements
2106 13.4.2 Unclear restrictions on use of function-type template arguments
2107 6.7.7 Lifetime of temporaries for default arguments in array copying
2109 13.8.3.4 Value dependence underspecified
2113 9.3.4 Incompete specification of types for declarators
2120 11 Array as first non-static data member in standard-layout class
2122 7.2.1 Glvalues of void type
2124 3.55 Signature of constructor template
2129 7.7 Non-object prvalues and constant expressions
2130 7.6.2.8 Over-aligned types in new-expressions
2137 9.4.5 List-initialization from object of same type
2140 7.3.2 Lvalue-to-rvalue conversion of std::nullptr_t
2141 7.6.2.8 Ambiguity in new-expression with elaborated-type-specifier
2145 9.5.1 Parenthesized declarator in function definition
2146 6.9.1 Scalar object vs memory location in definition of “unsequenced”
2147 13.10.3.2 Initializer-list arguments and pack deduction
2151 6.7.2 Exception object is not created
2153 11.4 pure-specifier in friend declaration
2154 11.4 Ambiguity of pure-specifier
2156 9.7.1 Definition of enumeration declared by using-declaration
2157 9.2.9.5 Further disambiguation of enumeration elaborated-type-specifier
2163 9.2.6 Labels in constexpr functions
2167 7.7 Non-member references with lifetimes within the current evaluation
2171 11.4.5.3 Triviality of copy constructor with less-qualified parameter
2175 9.3.3 Ambiguity with attribute in conversion operator declaration
2176 7.6.1.3 Destroying the returned object when a destructor throws
2180 11.4.6 Virtual bases in destructors and defaulted assignment operators
2184 C.7.4 Missing C compatibility entry for decrement of bool

Issues with "C++17" Status:

Issue Section Title
150 13.4.4 Template template parameters and default arguments
253 9.4 Why must empty or fully-initialized const objects be initialized?
314 13.3 template in base class specifier
343 13.3 Make template optional in contexts that require a type
426 6.6 Identically-named variables, one internally and one externally linked, allowed?
727 13.9.4 In-class explicit specializations
1253 13.9 Generic non-template members
1343 6.9.1 Sequencing of non-class initialization
1393 13.7.4 Pack expansions in using-declarations
1395 13.10.3.6 Partial ordering of variadic templates reconsidered
1432 13.7.4 Newly-ambiguous variadic template expansions
1622 9.4.2 Empty aggregate initializer for union
1677 6.9.3.2 Constant initialization via aggregate initialization
1710 11.7 Missing template keyword in class-or-decltype
1784 8.8 Concurrent execution during static local initialization
1794 13.3 template keyword and alias templates
1812 13.3 Omission of template in a typename-specifier
1825 13.10.3.5 Partial ordering between variadic and non-variadic function templates
1860 11.5 What is a “direct member?”
1961 6.9.2 Potentially-concurrent actions within a signal handler
2011 7.5.6.3 Unclear effect of reference capture of reference
2046 6.9.2 Incomplete thread specifications
2094 11.4.5.3 Trivial copy/move constructor for class with volatile member
2100 13.8.3.4 Value-dependent address of static data member of class template
2116 9.4.2 Direct or copy initialization for omitted aggregate initializers
2143 13.8.3.2 Value-dependency via injected-class-name
2155 _N4868_.9.8.2.3 Defining classes and enumerations via using-declarations
2174 13.7.5 Unclear rules for friend definitions in templates
2191 14.5 Incorrect result for noexcept(typeid(v))
2196 9.4 Zero-initialization with virtual base classes
2197 11.4.5.3 Overload resolution and deleted special member functions
2198 6.6 Linkage of enumerators
2201 6.8.5 Cv-qualification of array types
2205 9.12.1 Restrictions on use of alignas
2206 7 Composite type of object and function pointers
2211 7.5.6.3 Hiding by lambda captures and parameters
2214 6.8.2 Missing requirement on representation of integer values
2215 7.6.1.3 Redundant description of language linkage in function call
2218 6.5 Ambiguity and namespace aliases
2220 8.6.5 Hiding index variable in range-based for
2224 7.6.1.9 Member subobjects and base-class casts
2247 7.5.6.3 Lambda capture and variable argument list
2248 7.6.2.9 Problems with sized delete
2251 9.4.5 Unreachable enumeration list-initialization
2259 9.3.3 Unclear context describing ambiguity
2262 9.10 Attributes for asm-definition
2268 9.2.6 Unions with mutable members in constant expressions revisited
2271 11.4.5 Aliasing this
2272 9.4.2 Implicit initialization of aggregate members of reference type
2276 13.8.3.4 Dependent noexcept and function type-dependence

Issues with "CD5" Status:

Issue Section Title
476 7.6.2.8 Determining the buffer size for placement new
555 6.5 Pseudo-destructor name lookup
581 13.10.2 Can a templated constructor be explicitly instantiated or specialized?
682 _N4868_.6.5.6 Missing description of lookup of template aliases
689 6.8.2 Maximum values of signed and unsigned integers
943 7.6.1.4 Is T() a temporary?
1076 7.2.1 Value categories and lvalue temporaries
1258 13.8.4.1 “Instantiation context” differs from dependent lookup rules
1271 13.8 Imprecise wording regarding dependent types
1299 6.7.7 “Temporary objects” vs “temporary expressions”
1331 9.5.2 const mismatch with defaulted copy constructor
1332 5.3 Handling of invalid universal-character-names
1378 13.9.2 When is an instantiation required?
1426 9.5.2 Allowing additional parameter types in defaulted functions
1468 7.5.6.3 typeid, overload resolution, and implicit lambda capture
1469 7.6.2.8 Omitted bound in array new-expression
1523 8.6.5 Point of declaration in range-based for
1581 6.3 When are constexpr member functions defined?
1632 7.5.6.3 Lambda capture in member initializers
1636 9.7.1 Bits required for negative enumerator values
1640 9.3.4.5 Array of abstract instance of class template
1646 7.6.1.3 decltype-specifiers, abstract classes, and deduction failure
1704 13.9.3 Type checking in explicit instantiation of variable templates
1728 13.9.3 Type of an explicit instantiation of a variable template
1742 9.9 using-declarations and scoped enumerators
1781 12.2.2.6 Converting from nullptr_t to bool in overload resolution
1803 11.4 opaque-enum-declaration as member-declaration
1836 _N4567_.5.1.1 Use of class type being defined in trailing-return-type
1857 7.6.7 Additional questions about bits
1859 5.13.5 UTF-16 in char16_t string literals
1862 13.7.5 Determining “corresponding members” for friendship
1893 7.6.1.4 Function-style cast with braced-init-lists and empty pack expansions
1910 6.7.5.5.2 “Shall” requirement applied to runtime behavior
1912 9.5.2 exception-specification of defaulted function
1913 7.5.6 decltype((x)) in lambda-expressions
1918 13.7.5 friend templates with dependent scopes
1931 7.5.6.2 Default-constructible and copy-assignable closure types
1935 7.6.2.8 Reuse of placement arguments in deallocation
1937 7.5.6.2 Incomplete specification of function pointer from lambda
1938 4.1 Should hosted/freestanding be implementation-defined?
1943 11.4.10 Unspecified meaning of “bit”
1945 13.7.5 Friend declarations naming members of class templates in non-templates
1983 11.4 Inappropriate use of virt-specifier
2020 6.3 Inadequate description of odr-use of implicitly-invoked functions
2045 13.7.7.2 “Identical” template parameter lists
2051 7.2.1 Simplifying alias rules
2059 9.2.9.7 Linkage and deduced return types
2080 11.5 Example with empty anonymous union member
2081 9.2.9.7 Deduced return type in redeclaration or specialization of function template
2083 6.3 Incorrect cases of odr-use
2088 13.10.3.5 Late tiebreakers in partial ordering
2092 13.10.4 Deduction failure and overload resolution
2103 6.3 Lvalue-to-rvalue conversion is irrelevant in odr-use of a reference
2112 7.6.2.8 new auto{x}
2133 7.3.14 Converting std::nullptr_t to bool
2164 _N4868_.6.4.10 Name hiding and using-directives
2170 6.3 Unclear definition of odr-use for arrays
2177 7.6.2.8 Placement operator delete and parameter copies
2207 6.7.5.5.2 Alignment of allocation function return value
2212 9.2.4 Typedef changing linkage after use
2226 7.6.16 Xvalues vs lvalues in conditional expressions
2227 11.9.3 Destructor access and default member initializers
2229 11.4.10 Volatile unnamed bit-fields
2233 9.3.4.7 Function parameter packs following default arguments
2234 11 Missing rules for simple-template-id as class-name
2235 13.10.3.5 Partial ordering and non-dependent types
2237 11.4.5 Can a template-id name a constructor?
2241 7.6.1.3 Overload resolution is not invoked with a single function
2249 7.5.5.2 identifiers and id-expressions
2253 11.4.10 Unnamed bit-fields and zero-initialization
2254 11.4 Standard-layout classes and bit-fields
2255 13.9 Instantiated static data member templates
2256 6.7.3 Lifetime of trivially-destructible objects
2257 6.7.7 Lifetime extension of references vs exceptions
2260 13.9.4 Explicit specializations of deleted member functions
2266 13.8.3.2 Has dependent type vs is type-dependent
2267 9.4.4 Copy-initialization of temporary in reference direct-initialization
2273 11.4.5 Inheriting constructors vs implicit default constructor
2277 12.2.4.3 Ambiguity inheriting constructors with default arguments
2278 7.7 Copy elision in constant expressions reconsidered
2285 9.6 Issues with structured bindings
2287 6.8.4 Pointer-interconvertibility in non-standard-layout unions
2289 _N4868_.6.4.1 Uniqueness of structured binding names
2290 12.2.2 Unclear specification for overload resolution and deleted special member functions
2292 13.3 simple-template-id is ambiguous between class-name and type-name
2293 11 Requirements for simple-template-id used as a class-name
2294 13.8.3.3 Dependent auto static data members
2295 9.4.2 Aggregates with deleted defaulted constructors
2299 9.2.6 constexpr vararg functions
2300 6.3 Lambdas in multiple definitions
2303 13.10.3.2 Partial ordering and recursive variadic inheritance
2305 13.9.3 Explicit instantiation of constexpr or inline variable template
2307 13.8.3.2 Unclear definition of “equivalent to a nontype template parameter”
2309 9.2.6 Restrictions on nested statements within constexpr functions
2310 7.3.12 Type completeness and derived-to-base pointer conversions
2313 9.6 Redeclaration of structured binding reference variables
2315 11.4.5.3 What is the “corresponding special member” of a variant member?
2317 11.9.3 Self-referential default member initializers
2318 13.10.3.6 Nondeduced contexts in deduction from a braced-init-list
2321 7.6.16 Conditional operator and cv-qualified class prvalues
2322 13.10.3 Substitution failure and lexical order
2330 13.9 Missing references to variable templates
2332 9.2.9.3 template-name as simple-type-name vs injected-class-name
2336 14.5 Destructor characteristics vs potentially-constructed subobjects
2338 7.6.1.9 Undefined behavior converting to short enums with fixed underlying types
2339 9.6 Underspecified template arguments in structured bindings
2341 9.1 Structured bindings with static storage duration
2342 7.6.1.10 Reference reinterpret_cast and pointer-interconvertibility
2345 8.5.2 Jumping across initializers in init-statements and conditions
2346 9.3.4.7 Local variables in default arguments
2351 7.6.1.4 void{}
2352 9.4.4 Similar types and reference binding
2353 6.3 Potential results of a member access expression for a static data member
2354 6.7.6 Extended alignment and object representation
2356 12.2.2 Base class copy and move constructors should not be inherited
2358 7.5.6.3 Explicit capture of value
2359 9.4.2 Unintended copy initialization with designated initializers
2360 9.12.9 [[maybe_unused]] and structured bindings
2365 7.6.1.7 Confusing specification for dynamic_cast
2366 6.9.3.2 Can default initialization be constant initialization?
2368 7.7 Differences in relational and three-way constant comparisons
2371 6.2 Use of the English term “attributes” is confusing
2372 6.6 Incorrect matching rules for block-scope extern declarations
2373 13.7.7.3 Incorrect handling of static member function templates in partial ordering
2376 12.2.2.9 Class template argument deduction with array declarator
2379 13.7.5 Missing prohibition against constexpr in friend declaration
2380 6.3 capture-default makes too many references odr-usable
2381 7.2.2 Composite pointer type of pointers to plain and noexcept member functions
2382 7.6.2.8 Array allocation overhead for non-allocating placement new
2384 13.10.3.4 Conversion function templates and qualification conversions
2385 7.5.5.3 Lookup for conversion-function-ids
2386 9.6 tuple_size requirements for structured binding
2387 6.6 Linkage of const-qualified variable template
2390 15.2 Is the argument of __has_cpp_attribute macro-expanded?
2394 11.4.5.2 Const-default-constructible for members
2399 7.6.19 Unclear referent of “expression” in assignment-expression
2400 7.7 Constexpr virtual functions and temporary objects
2404 11.4 [[no_unique_address]] and allocation order
2406 9.12.6 [[fallthrough]] attribute and iteration statements
2418 7.7 Missing cases in definition of “usable in constant expressions”

Issues with "C++20" Status:

Issue Section Title
1621 11.9.3 Member initializers in anonymous unions
2053 9.2.9.7 auto in non-generic lambdas
2126 7.7 Lifetime-extended temporaries in constant expressions
2181 Annex B Normative requirements in an informative Annex
2280 7.6.2.8 Matching a usual deallocation function with placement new
2282 7.6.2.8 Consistency with mismatched aligned/non-over-aligned allocation/deallocation functions
2323 6.8 Expunge POD
2343 13.2 void* non-type template parameters
2347 7.6.1.3 Passing short scoped enumerations to ellipsis
2374 9.4.5 Overly permissive specification of enum direct-list-initialization
2378 7.5.6.3 Inconsistent grammar for reference init-capture of pack
2411 13.6 Comparison of pointers to members in template non-type arguments
2414 11.10.1 Unclear results if both member and friend operator<=> are declared
2416 13.9.4 Explicit specializations vs constexpr and consteval
2419 7.6.6 Loss of generality treating pointers to objects as one-element arrays
2422 13.7.2.3 Incorrect grammar for deduction-guide
2424 9.2.6 constexpr initialization requirements for variant members
2426 14.3 Reference to destructor that cannot be invoked
2427 7.6.19 Deprecation of volatile operands and unevaluated contexts
2429 8.8 Initialization of thread_local variables referenced by lambdas
2430 11.4 Completeness of return and parameter types of member functions
2431 6.9 Full-expressions and temporaries bound to references
2432 11.10.3 Return types for defaulted <=>
2433 6.3 Variable templates in the ODR
2436 9.5.4 Copy semantics of coroutine parameters
2437 11.10.3 Conversion of std::strong_ordering in a defaulted operator<=>
2439 7.7 Undefined term in definition of “usable in constant expressions”
2441 9.2.8 Inline function parameters
2442 12.2.3 Incorrect requirement for default arguments
2445 13.7.7.3 Partial ordering with rewritten candidates
2446 13.8.3.3 Questionable type-dependency of concept-ids
2447 9.2.9.7 Unintended description of abbreviated function templates

Issues with "CD6" Status:

Issue Section Title
36 9.9 using-declarations in multiple-declaration contexts
110 13 Can template functions and classes be declared in the same scope?
138 _N4868_.9.8.2.3 Friend declaration name lookup
191 6.5.3 Name lookup does not handle complex nesting
255 11.4.11 Placement deallocation functions and lookup ambiguity
271 13.10.3 Explicit instantiation and template argument deduction
279 6.6 Correspondence of "names for linkage purposes"
338 6.6 Enumerator name with linkage used as class name in other translation unit
360 11.8.3 Using-declaration that reduces access
386 9.9 Friend declaration of name brought in by using-declaration
399 11.4.7 Destructor lookup redux
405 6.5.3 Unqualified function name lookup
411 5.13.5 Use of universal-character-name in character versus string literals
418 12.2.4 Imperfect wording on error on multiple default arguments on a called function
536 _N4567_.5.1.1 Problems in the description of id-expressions
554 6.4 Definition of “declarative region” and “scope”
562 6.5.5.2 qualified-ids in non-expression contexts
563 9.11 Linkage specification for objects
578 5.2 Phase 1 replacement of characters with universal-character-names
600 11.8 Does access control apply to members or to names?
607 11.9.3 Lookup of mem-initializer-ids
852 9.9 using-declarations and dependent base classes
952 11.8.3 Insufficient description of “naming class”
1028 13.8.4 Dependent names in non-defining declarations
1200 6.5.3 Lookup rules for template parameters
1249 7.5.6.3 Cv-qualification of nested lambda capture
1252 _N4868_.12.2 Overloading member function templates based on dependent return type
1291 _N4868_.6.5.6 Looking up a conversion-type-id
1335 15.6.3 Stringizing, extended characters, and universal-character-names
1342 9.3 Order of initialization with multiple declarators
1360 11.4.5 constexpr defaulted default constructors
1403 5.7 Universal-character-names in comments
1478 13.3 template keyword for dependent template template arguments
1500 13.8.4.2 Name lookup of dependent conversion function
1616 8.9 Disambiguation parsing and template parameters
1656 5.13.3 Encoding of numerically-escaped characters
1711 13.7.6 Missing specification of variable template partial specializations
1724 13.10.3 Unclear rules for deduction failure
1726 11.4.8.3 Declarator operators and conversion function
1729 13.7 Matching declarations and definitions of variable templates
1733 9.5.2 Return type and value for operator= with ref-qualifier
1771 6.5.5 Restricted lookup in nested-name-specifier
1818 9.11 Visibility and inherited language linkage
1820 9.2.4 Qualified typedef names
1821 11.4 Qualified redeclarations in a class member-specification
1822 7.5.6 Lookup of parameter names in lambda-expressions
1828 6.5.5 nested-name-specifier ambiguity
1829 13.8.3.2 Dependent unnamed types
1835 _N4868_.6.5.6 Dependent member lookup before <
1837 _N4567_.5.1.1 Use of this in friend and local class declarations
1839 6.6 Lookup of block-scope extern declarations
1841 13.8.2 < following template injected-class-name
1849 6.3 Variable templates and the ODR
1884 6.6 Unclear requirements for same-named external-linkage entities
1894 9.2.4 typedef-names and using-declarations
1896 13.7.8 Repeated alias templates
1898 _N4868_.12.3 Use of “equivalent” in overload resolution
1900 9.3.4 Do friend declarations count as “previous declarations”?
1907 9.9 using-declarations and default arguments
1908 _N4868_.6.5.6 Dual destructor lookup and template-ids
1936 13.8.3 Dependent qualified-ids
1969 11.4.7 Missing exclusion of ~S as an ordinary function name
1972 5.10 Identifier character restrictions in non-identifiers
2007 12.2.2.3 Argument-dependent lookup for operator=
2009 6.4.7 Unclear specification of class scope
2058 6.6 More errors from internal-linkage namespaces
2062 13.7.2 Class template redeclaration requirements
2065 13.8.3.2 Current instantiation of a partial specialization
2070 6.5.5.2 using-declaration with dependent nested-name-specifier
2121 7.5.6.1 More flexible lambda syntax
2165 _N4868_.6.4.1 Namespaces, declarative regions, and translation units
2185 6.8.2 Cv-qualified numeric types
2199 9.2.4 Typedefs and tags
2213 9.2.9.5 Forward declaration of partial specializations
2221 9.5.2 Copying volatile objects
2312 9.6 Structured bindings and mutable
2331 6.4.7 Redundancy in description of class scope
2333 5.13.3 Escape sequences in UTF-8 character literals
2355 13.10.3.6 Deducing noexcept-specifiers
2369 13.10.3 Ordering between constraints and substitution
2370 6.5.3 friend declarations of namespace-scope functions
2389 9.2.9.7 Agreement of deduced and explicitly-specified variable types
2396 7.5.5.3 Lookup of names in complex conversion-type-ids
2397 9.3.4.5 auto specifier for pointers and references to arrays
2402 5.13.3 When is the restriction to a single c-char in a Unicode literal enforced?
2405 13.8.3.3 Additional type-dependent expressions
2413 13.8 typename in conversion-function-ids
2448 6.8.2 Cv-qualification of arithmetic types and deprecation of volatile
2452 8.7.5 Flowing off the end of a coroutine
2455 5.2 Concatenation of string literals vs translation phases 5 and 6
2457 13.8.3.2 Unexpanded parameter packs don't make a function type dependent
2458 7.6.1.5 Value category of expressions denoting non-static member functions
2460 9.11 C language linkage and constrained non-template friends
2461 13.8 Diagnosing non-bool type constraints
2464 17.6.5 Constexpr launder and unions
2465 9.5.4 Coroutine parameters passed to a promise constructor
2466 7.6.2.4 co_await should be a single evaluation
2470 6.7.2 Multiple array objects providing storage for one object
2474 7.6.2.9 Cv-qualification and deletion
2477 11.4.5.3 Defaulted vs deleted copy constructors/assignment operators
2479 6.9.3.1 Missing specifications for consteval and constinit
2481 9.4.4 Cv-qualification of temporary to which a reference is bound
2482 22.15.3 bit_cast and indeterminate values
2484 7.3.7 char8_t and char16_t in integral promotions
2486 7.6.1.3 Call to noexcept function via noexcept(false) pointer/lvalue
2490 7.7 Restrictions on destruction in constant expressions
2491 10.2 Export of typedef after its first declaration
2494 6.3 Multiple definitions of non-odr-used entities
2496 11.7.3 ref-qualifiers and virtual overriding
2499 6.8.4 Inconsistency in definition of pointer-interconvertibility
2502 6.4.3 Unintended declaration conflicts in nested statement scopes
2506 9.6 Structured bindings and array cv-qualifiers
2507 12.4.1 Default arguments for operator[]
2509 7.5.6.1 decl-specifier-seq in lambda-specifiers
2511 11.4.10 cv-qualified bit-fields
2534 7.6.1.5 Value category of pseudo-destructor expression
2535 7.6.1.5 Type punning in class member access
2540 5.13.3 Unspecified interpretation of numeric-escape-sequence
2569 7.5.5.2 Use of decltype(capture) in a lambda's parameter-declaration-clause
2571 7.6.1.2 Evaluation order for subscripting
2582 6.5.2 Differing member lookup from nested classes
2585 9.5.4 Name lookup for coroutine allocation
2586 11.10.1 Explicit object parameter for assignment and comparison
2594 6.9.3.1 Disallowing a global function template main
2597 10.1 Replaceable allocation and deallocation functions in the global module
2606 7.6.1.9 static_cast from "pointer to void" does not handle similar types
2608 13.10.2 Omitting an empty template argument list

Issues with "C++23" Status:

Issue Section Title
745 15.8 Effect of ill-formedness resulting from #error
900 6.7.7 Lifetime of temporaries in range-based for
1396 13.9.2 Deferred instantiation and checking of non-static data member initializers
2072 13.9.2 Default argument instantiation for member functions of templates
2242 6.3 ODR violation with constant initialization possibly omitted
2392 7.7 new-expression size check and constant evaluation
2407 Annex C Missing entry in Annex C for defaulted comparison operators
2410 9.2.6 Implicit calls of immediate functions
2428 13.7.9 Deprecating a concept
2440 7.7 Allocation in core constant expressions
2443 10.2 Meaningless template exports
2451 9.5.4 promise.unhandled_exception() and final suspend point
2475 6.8.2 Object declarations of type cv void
2478 13.9.4 Properties of explicit specializations of implicitly-instantiated class templates
2483 9.11 Language linkage of static member functions
2489 6.7.2 Storage provided by array of char
2508 13.8.2 Restrictions on uses of template parameter names
2516 6.4.2 Locus of enum-specifier or opaque-enum-declaration
2517 7.5.8.5 Useless restriction on use of parameter in constraint-expression
2518 4.1.1 Conformance requirements and #error/#warning
2520 3.51 Template signature and default template arguments
2521 12.6 User-defined literals and reserved identifiers
2523 7.7 Undefined behavior via omitted destructor call in constant expressions
2526 7.6.9 Relational comparison of void* pointers
2528 7.4 Three-way comparison and the usual arithmetic conversions
2529 7.7 Constant destruction of constexpr references
2530 6.3 Multiple definitions of enumerators
2538 9.12.1 Can standard attributes be syntactically ignored?
2539 11.10.3 Three-way comparison requiring strong ordering for floating-point types
2543 9.2.7 constinit and optimized dynamic initialization
2558 7.7 Uninitialized subobjects as a result of an immediate invocation
2583 11.4.1 Common initial sequence should consider over-alignment
2590 9.7.1 Underlying type should determine size and alignment requirements of an enum
2598 6.8.1 Unions should not require a non-static data member of literal type
2599 7.6.1.3 What does initializing a parameter include?
2601 14.3 Tracking of created and destroyed subobjects
2602 9.2.6 consteval defaulted functions
2603 13.7.7.2 Holistic functional equivalence for function templates
2604 13.9.4 Attributes for an explicit specialization
2605 11.2 Implicit-lifetime aggregates
2610 9.4.2 Indirect private base classes in aggregates
2611 13.7.4 Missing parentheses in expansion of fold-expression could cause syntactic reinterpretation
2612 9.4.1 Incorrect comment in example
2613 9.5.4 Incomplete definition of resumer
2614 7.6.1.5 Unspecified results for class member access
2615 15.2 Missing __has_cpp_attribute(assume)
2616 8 Imprecise restrictions on break and continue
2618 13.10.3.1 Substitution during deduction should exclude exception specifications
2619 9.4.2 Kind of initialization for a designated-initializer-list
2620 9.3.3 Nonsensical disambiguation rule
2621 9.7.2 Kind of lookup for using enum declarations
2622 Annex B Compounding types from function and pointer-to-member types
2624 7.6.2.9 Array delete expression with no array cookie
2625 6.7.3 Deletion of pointer to out-of-lifetime object
2626 7.6.2.2 Rephrase ones' complement using base-2 representation
2627 9.4.5 Bit-fields and narrowing conversions
2629 8.5.3 Variables of floating-point type as switch conditions
2630 11.4.1 Syntactic specification of class completeness
2631 7.7 Immediate function evaluations in default arguments
2635 9.1 Constrained structured bindings
2636 Annex E Update Annex E based on Unicode 15.0 UAX #31
2639 5.2 new-lines after phase 1
2640 5.3 Allow more characters in an n-char sequence
2641 5.13 Redundant specification of value category of literals
2642 6.5.2 Inconsistent use of T and C
2643 6.8.1 Completing a pointer to array of unknown bound
2644 7.5.6.3 Incorrect comment in example
2645 7.6.1.3 Unused term "default argument promotions"
2646 9.5.2 Defaulted special member functions
2647 7.7 Fix for "needed for constant evaluation"
2648 12.4.4 Correspondence of surrogate call function and conversion function
2649 12.2.2.2.3 Incorrect note about implicit conversion sequence
2650 13.10.3.1 Incorrect example for ill-formed non-type template arguments
2651 13.10.3.4 Conversion function templates and "noexcept"
2652 15.11 Overbroad definition of __STDCPP_BFLOAT16_T__
2653 9.3.4.6 Can an explicit object parameter have a default argument?
2654 7.6.19 Un-deprecation of compound volatile assignments
2658 7.7 Trivial copying of unions in core constant expressions
2659 15.11 Missing feature-test macro for lifetime extension in range-for loop
2662 11.8.1 Example for member access control vs. overload resolution
2664 12.2.2.9 Deduction failure in CTAD for alias templates
2667 15.5 Named module imports do not import macros
2673 12.2.2.3 User-declared spaceship vs. built-in operators
2674 11.4.5.1 Prohibit explicit object parameters for constructors
2678 6.3 std::source_location::current is unimplementable
2681 12.2.2.9 Deducing member array type from string literal
2682 13.1 Templated function vs. function template
2685 12.2.2.9 Aggregate CTAD, string, and brace elision
2687 12.2.2.2.1 Calling an explicit object member function via an address-of-overload-set
2690 11.4.6 Semantics of defaulted move assignment operator for unions
2691 5.13.3 hexadecimal-escape-sequence is too greedy
2692 12.2.2.2.1 Static and explicit object member functions with the same parameter-type-lists
2695 9.12.1 Semantic ignorability of attributes