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


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 N4700.




Index by Status




Issues with "Ready" Status:

Issue Section Title
2254 12.2 Standard-layout classes and bit-fields
2293 12 Requirements for simple-template-id used as a class-name
2294 17.7.2.2 Dependent auto static data members
2312 11.5 Structured bindings and mutable
2321 8.16 Conditional operator and cv-qualified class prvalues
2322 17.9.2 Substitution failure and lexical order
2339 11.5 Underspecified template arguments in structured bindings


Issues with "Tentatively Ready" Status:

Issue Section Title
2233 11.3.6 Function parameter packs following default arguments
2249 8.1.4.1 identifiers and id-expressions
2285 11.5 Issues with structured bindings
2351 8.2.3 void{}
2356 16.3.1 Base class copy and move constructors should not be inherited
2359 11.6.1 Unintended copy initialization with designated initializers


Issues with "Review" Status:

Issue Section Title
1924 5.13 Definition of “literal” and kinds of literals
2194 16.3.1.7 Impossible case in list initialization
2197 15.8 Overload resolution and deleted special member functions
2215 8.2.2 Redundant description of language linkage in function call
2221 11.4.2 Copying volatile objects
2252 11.6.4 Enumeration list-initialization from the same type
2280 8.3.4 Matching a usual deallocation function with placement new
2297 4.7.1 Unclear specification of atomic operations
2345 9.4.1 Jumping across initializers in init-statements and conditions


Issues with "Drafting" Status:

Issue Section Title
2 17.7.4 How can dependent names be used in member declarations that appear outside of the class template definition?
138 10.3.1.2 Friend declaration name lookup
156 6.4.5 Name lookup for conversion functions
170 7.12 Pointer-to-member conversions
189 5.12 Definition of operator and punctuator
192 6.4.1 Name lookup in parameters
205 17 Templates and static data members
232 8.3.1 Is indirection through a null pointer undefined behavior?
255 15.5 Placement deallocation functions and lookup ambiguity
287 17.7.4.1 Order dependencies in template instantiation
325 11.3.6 When are default arguments parsed?
369 5.4 Are new/delete identifiers or preprocessing-op-or-punc?
386 10.3.3 Friend declaration of name brought in by using-declaration
399 15.4 Destructor lookup redux
453 11.3.2 References may only bind to “valid” objects
455 16.3.3 Partial ordering and non-deduced arguments
472 14.4 Casting across protected inheritance
529 17.8.3 Use of template<> with “explicitly-specialized” class templates
536 _N4567_.5.1.1 Problems in the description of id-expressions
549 17.6.5.1 Non-deducible parameters in partial specializations
554 6.3 Definition of “declarative region” and “scope”
555 6.4 Pseudo-destructor name lookup
560 17.7 Use of the typename keyword in return types
617 7.1 Lvalue-to-rvalue conversions of uninitialized char objects
682 6.4.5 Missing description of lookup of template aliases
901 8.3.4 Deleted operator delete
952 14.2 Insufficient description of “naming class”
1001 11.3.5 Parameter type adjustment in dependent parameter types
1027 6.8 Type consistency and reallocation of scalar types
1089 6.4.5 Template parameters in member selections
1092 15.8 Cycles in overload resolution during instantiation
1172 17.9.2 “instantiation-dependent” constructs
1211 6.11 Misaligned lvalues
1223 9.8 Syntactic disambiguation and trailing-return-types
1249 8.1.5 Cv-qualification of nested lambda capture
1252 16.1 Overloading member function templates based on dependent return type
1253 17.8 Generic non-template members
1255 8.20 Definition problems with constexpr functions
1258 17.7.4.1 “Instantiation context” differs from dependent lookup rules
1278 16.3.1.1.1 Incorrect treatment of contrived object
1279 C.2 Additional differences between C++ 2003 and C++ 2011
1283 12.2.3.2 Static data members of classes with typedef name for linkage purposes
1286 17.6.7 Equivalence of alias templates
1291 6.4.5 Looking up a conversion-type-id
1294 6.6.2 Side effects in dynamic/static initialization
1304 11.6.2 Omitted array bound with string initialization
1322 17.9.2 Function parameter type decay in templates
1332 5.3 Handling of invalid universal-character-names
1335 19.3.2 Stringizing, extended characters, and universal-character-names
1342 11 Order of initialization with multiple declarators
1348 10.1.7.4 Use of auto in a trailing-return-type
1353 15.1 Array and variant members and deleted special member functions
1360 15.1 constexpr defaulted default constructors
1390 17.7.2.1 Dependency of alias template specializations
1396 17.8.1 Deferred instantiation and checking of non-static data member initializers
1404 12.3 Object reallocation in unions
1414 11.6.3 Binding an rvalue reference to a reference-unrelated lvalue
1430 17.6.7 Pack expansion into fixed alias template parameter list
1432 17.6.3 Newly-ambiguous variadic template expansions
1436 19.1 Interaction of constant expression changes with preprocessor expressions
1444 17.1 Type adjustments of non-type template parameters
1452 8.20 Value-initialized objects may be constants
1468 8.1.5 typeid, overload resolution, and implicit lambda capture
1478 17.2 template keyword for dependent template template arguments
1485 10.2 Out-of-class definition of member unscoped opaque enumeration
1486 17.9.2.2 Base-derived conversion in member pointer deduction
1488 11.1 abstract-pack-declarators in type-ids
1499 15.8 Missing case for deleted move assignment operator
1513 17.9.2.1 initializer_list deduction failure
1517 15.7 Unclear/missing description of behavior during construction/destruction
1521 8.2.3 T{expr} with reference types
1524 17.7.2.1 Incompletely-defined class template base
1529 6 Nomenclature for variable vs reference non-static data member
1530 6.8 Member access in out-of-lifetime objects
1536 16.3.3.1.5 Overload resolution with temporary from initializer list
1542 8.18 Compound assignment of braced-init-list
1545 17.6.4 friend function templates defined in class templates
1548 15.8 Copy/move construction and conversion functions
1554 17.6.7 Access and alias templates
1580 11.3.6 Default arguments in explicit instantiations
1581 6.2 When are constexpr member functions defined?
1582 17.9.2 Template default arguments and deduction failure
1584 17.9.2.1 Deducing function types from cv-qualified types
1590 15.8 Bypassing non-copy/move constructor copying
1594 15.8 Lazy declaration of special members vs overload errors
1610 17.9.2.4 Cv-qualification in deduction of reference to array
1616 9.8 Disambiguation parsing and template parameters
1621 15.6.2 Member initializers in anonymous unions
1623 15.1 Deleted default union constructor and member initializers
1626 8.20 constexpr member functions in brace-or-equal-initializers
1634 6.7 Temporary storage duration
1635 17.1 How similar are template default arguments to function default arguments?
1636 10.2 Bits required for negative enumerator values
1640 11.3.4 Array of abstract instance of class template
1646 8.2.2 decltype-specifiers, abstract classes, and deduction failure
1647 17.6.5 Type agreement of non-type template arguments in partial specializations
1651 15.2 Lifetime extension of temporary via reference to subobject
1655 5.4 Line endings in raw string literals
1656 5.13.3 Encoding of numerically-escaped characters
1665 17.8.2 Declaration matching in explicit instantiations
1668 11.3.5 Parameter type determination still not clear enough
1670 10.1.7.4 auto as conversion-type-id
1676 6.7.4.1 auto return type for allocation and deallocation functions
1680 9.5.4 Including <initializer_list> for range-based for
1697 15.2 Lifetime extension and copy elision
1699 14.3 Does befriending a class befriend its friends?
1701 6.9 Array vs sequence in object representation
1702 12.3 Rephrasing the definition of “anonymous union”
1706 10.6.1 alignas pack expansion syntax
1709 19.3.2 Stringizing raw string literals containing newline
1711 17.6.5 Missing specification of variable template partial specializations
1713 10.5 Linkage of variable template specializations
1718 19.3 Macro invocation spanning end-of-file
1721 12.2.3.2 Diagnosing ODR violations for static data members
1723 5.13.8 Multicharacter user-defined character literals
1724 17.9.2 Unclear rules for deduction failure
1726 15.3.2 Declarator operators and conversion function
1729 17.6 Matching declarations and definitions of variable templates
1730 17.6 Can a variable template have an unnamed type?
1733 11.4.2 Return type and value for operator= with ref-qualifier
1735 5.13.8 Out-of-range literals in user-defined-literals
1755 17.6.5.3 Out-of-class partial specializations of member templates
1789 16.3.3.2 Array reference vs array decay in overload resolution
1801 12.3 Kind of expression referring to member of anonymous union
1803 12.2 opaque-enum-declaration as member-declaration
1808 15.1 Constructor templates vs default constructors
1817 10.5 Linkage specifications and nested scopes
1827 11.6.3 Reference binding with ambiguous conversions
1828 6.4.3 nested-name-specifier ambiguity
1835 6.4.5 Dependent member lookup before <
1837 _N4567_.5.1.1 Use of this in friend and local class declarations
1839 6.5 Lookup of block-scope extern declarations
1840 17.8.3 Non-deleted explicit specialization of deleted function template
1841 17.7.1 < following template injected-class-name
1844 17.9.2 Defining “immediate context”
1845 17.7.4.1 Point of instantiation of a variable template specialization
1849 6.2 Variable templates and the ODR
1853 6.8 Defining “allocated storage”
1854 11.4.2 Disallowing use of implicitly-deleted functions
1857 8.8 Additional questions about bits
1859 5.13.5 UTF-16 in char16_t string literals
1868 10.1.7.4 Meaning of “placeholder type”
1880 8.2.2 When are parameter objects destroyed?
1883 14.4 Protected access to constructors in mem-initializers
1884 6.5 Unclear requirements for same-named external-linkage entities
1889 19.6 Unclear effect of #pragma on conformance
1890 12.2 Member type depending on definition of member function
1896 17.6.7 Repeated alias templates
1897 6.2 ODR vs alternative tokens
1898 16.2 Use of “equivalent” in overload resolution
1900 11.3 Do friend declarations count as “previous declarations”?
1901 5.6 punctuator referenced but not defined
1907 10.3.3 using-declarations and default arguments
1908 6.4.5 Dual destructor lookup and template-ids
1913 8.1.5 decltype((x)) in lambda-expressions
1917 10.2 decltype-qualified enumeration names
1935 8.3.4 Reuse of placement arguments in deallocation
1936 17.7.2 Dependent qualified-ids
1937 8.1.5 Incomplete specification of function pointer from lambda
1938 4.1 Should hosted/freestanding be implementation-defined?
1939 17.9.2.1 Argument conversions to nondeduced parameter types revisited
1962 11.4.1 Type of __func__
1965 8.2.7 Explicit casts to reference types
1973 8.1.5 Which parameter-declaration-clause in a lambda-expression?
1977 15.4 Contradictory results of failed destructor lookup
1979 17.6.7 Alias template specialization in template member definition
1980 17.6.7 Equivalent but not functionally-equivalent redeclarations
1986 6.6.2 odr-use and delayed initialization
1989 16.5 Insufficient restrictions on parameters of postfix operators
1993 17.8.3 Use of template<> defining member of explicit specialization
1996 11.6.4 Reference list-initialization ignores conversion functions
1997 11.6 Placement new and previous initialization
2003 19.3 Zero-argument macros incorrectly specified
2007 16.3.1.2 Argument-dependent lookup for operator=
2013 8.7 Pointer subtraction in large array
2018 11.6.3 Qualification conversion vs reference binding
2020 6.2 Inadequate description of odr-use of implicitly-invoked functions
2023 8.16 Composite reference result type of conditional operator
2028 16.3.1.6 Converting constructors in rvalue reference initialization
2037 17.5 Alias templates and template declaration matching
2042 6.7.4.2 Exceptions and deallocation functions
2043 17.3.2 Generalized template arguments and array-to-pointer decay
2045 17.6.6.1 “Identical” template parameter lists
2049 17.3.2 List initializer in non-type template default argument
2051 6.10 Simplifying alias rules
2053 10.1.7.4 auto in non-generic lambdas
2055 17.9.1 Explicitly-specified non-deduced parameter packs
2056 15.6.2 Member function calls in partially-initialized class objects
2057 17.3.3 Template template arguments with default arguments
2058 6.5 More errors from internal-linkage namespaces
2062 17.6.1 Class template redeclaration requirements
2065 17.7.2.1 Current instantiation of a partial specialization
2070 6.4.3.1 using-declaration with dependent nested-name-specifier
2072 17.8.1 Default argument instantiation for member functions of templates
2073 6.7.4.1 Allocating memory for exception objects
2074 17.7.2.1 Type-dependence of local class of function template
2077 16.3.3.1.4 Overload resolution and invalid rvalue-reference initialization
2080 12.3 Example with empty anonymous union member
2083 6.2 Incorrect cases of odr-use
2086 8.1.5 Reference odr-use vs implicit capture
2089 16.3.1.2 Restricting selection of builtin overloaded operators
2090 17.7.2.4 Dependency via non-dependent base class
2102 8.3.4 Constructor checking in new-expression
2103 6.2 Lvalue-to-rvalue conversion is irrelevant in odr-use of a reference
2108 16.3.1.6 Conversions to non-class prvalues in reference initialization
2110 16.3.3.2 Overload resolution for base class conversion and reference/non-reference
2112 8.3.4 new auto{x}
2115 9.6 Order of implicit destruction vs release of automatic storage
2116 11.6.1 Direct or copy initialization for omitted aggregate initializers
2117 10.1.5 Explicit specializations and constexpr function templates
2121 8.1.5 More flexible lambda syntax
2126 8.20 Lifetime-extended temporaries in constant expressions
2127 17.6.5 Partial specialization and nullptr
2128 11.6.1 Imprecise rule for reference member initializer
2131 10.2 Ambiguity with opaque-enum-declaration
2144 11.4.1 Function/variable declaration ambiguity
2148 6.6.2 Thread storage duration and order of initialization
2149 11.6.1 Brace elision and array length deduction
2151 4.5 Exception object is not created
2158 15.4 Polymorphic behavior during destruction
2165 6.3.1 Namespaces, declarative regions, and translation units
2166 8.20 Unclear meaning of “undefined constexpr function”
2170 6.2 Unclear definition of odr-use for arrays
2172 18.3 Multiple exceptions with one exception object
2179 17.6.5 Required diagnostic for partial specialization after first use
2181 B Normative requirements in an informative Annex
2182 8.7 Pointer arithmetic in array-like containers
2186 8.20 Unclear point that “preceding initialization” must precede
2187 14.4 Protected members and access via qualified-id
2199 10.1.3 Typedefs and tags
2202 17.8.1 When does default argument instantiation occur?
2203 15.8 Defaulted copy/move constructors and UDCs
2207 6.7.4.1 Alignment of allocation function return value
2213 10.1.7.3 Forward declaration of partial specializations
2219 18.3 Dynamically-unreachable handlers
2222 17.8.1 Additional contexts where instantiation is not required
2223 10.6.2 Multiple alignas specifiers
2228 11.2 Ambiguity resolution for cast to function type
2236 17.6.7 When is an alias template specialization dependent?
2240 6.2 this is not odr-used in a constant expression
2242 6.2 ODR violation with constant initialization possibly omitted
2243 8.2.9 Incorrect use of implicit conversion sequence
2245 17.7.4.1 Point of instantiation of incomplete class template
2246 14.2 Access of indirect virtual base class constructors
2256 6.8 Lifetime of trivially-destructible objects
2257 15.2 Lifetime extension of references vs exceptions
2263 17.8.1 Default argument instantiation for friends
2264 15.8 Memberwise copying with indeterminate value
2265 17.8.1 Delayed pack expansion and member redeclarations
2266 17.7.2.1 Has dependent type vs is type-dependent
2267 11.6.3 Copy-initialization of temporary in reference direct-initialization
2275 17.7.2.2 Type-dependence of function template
2278 8.20 Copy elision in constant expressions reconsidered
2281 8.3.4 Consistency of aligned operator delete replacement
2282 8.3.4 Consistency with mismatched aligned/non-over-aligned allocation/deallocation functions
2283 8.2.3 Missing complete type requirements
2289 6.3.1 Uniqueness of decomposition declaration names
2292 17.2 simple-template-id is ambiguous between class-name and type-name
2300 6.2 Lambdas in multiple definitions
2303 17.9.2.1 Partial ordering and recursive variadic inheritance
2309 10.1.5 Restrictions on nested statements within constexpr functions
2310 7.11 Type completeness and derived-to-base pointer conversions
2316 8.16 Simplifying class conversions in conditional expressions
2317 15.6.2 Self-referential default member initializers
2318 17.9.2.5 Nondeduced contexts in deduction from a braced-init-list
2319 16.3.3.1 Nested brace initialization from same type
2324 4.5 Size of base class subobject
2325 4.5 std::launder and reuse of character buffers
2327 11.6 Copy elision for direct-initialization with a conversion function
2329 15.8.2 Virtual base classes and generated assignment operators
2330 17.8 Missing references to variable templates
2331 6.3.7 Redundancy in description of class scope
2332 10.1.7.2 template-name as simple-type-name vs injected-class-name
2333 5.13.3 Escape sequences in UTF-8 character literals
2336 18.4 Destructor characteristics vs potentially-constructed subobjects
2344 9.4 Redeclaration of names in init-statements
2352 11.6.3 Similar types and reference binding
2353 6.2 Potential results of a member access expression for a static data member
2358 8.1.5.2 Explicit capture of value


Issues with "Open" Status:

Issue Section Title
6 15.8 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?
36 10.3.3 using-declarations in multiple-declaration contexts
57 12.3 Empty unions
110 17 Can template functions and classes be declared in the same scope?
144 10.1.7.3 Position of friend specifier
146 6.9.1 Floating-point zero
157 10 Omitted typedef declarator
186 17.7.1 Name hiding and template template-parameters
191 6.4.1 Name lookup does not handle complex nesting
196 8.3.5 Arguments to deallocation functions
233 11.6.3 References vs pointers in UDC overload resolution
251 6.9.1 How many signed integer types are there?
260 16.6 User-defined conversions and built-in operator=
264 17.9.1 Unusable template constructors and conversion functions
267 8.3.4 Alignment requirement for new-expressions
268 19.3.4 Macro name suppression in rescanned replacement text
271 17.9.2 Explicit instantiation and template argument deduction
278 6.5 External linkage and nameless entities
279 6.5 Correspondence of "names for linkage purposes"
282 8.2.8 Namespace for extended_type_info
293 17.8.2 Syntax of explicit instantiation/specialization too permissive
297 17.9.2 Which template does an explicit specialization specialize?
310 17.6.6.1 Can function templates differing only in parameter cv-qualifiers be overloaded?
338 6.5 Enumerator name with linkage used as class name in other translation unit
350 6.9 signed char underlying representation for objects
360 14.2 Using-declaration that reduces access
361 11.3.6 Forward reference to default argument
365 6.7 Storage duration and temporaries
371 6.6.2 Interleaving of constructor calls
380 13.2 Definition of "ambiguous base class" missing
402 17.6.6.2 More on partial ordering of function templates
405 6.4.1 Unqualified function name lookup
411 5.13.5 Use of universal-character-name in character versus string literals
418 16.3.3 Imperfect wording on error on multiple default arguments on a called function
419 6.8 Can cast to virtual base class be done on partially-constructed object?
440 17.3 Allow implicit pointer-to-member conversion on nontype template argument
459 17.7.1 Hiding of template parameters by base class members
473 8.3.4 Block-scope declarations of allocator functions
498 10.1.1 Storage class specifiers in definitions of class members
503 17.9.2.1 Cv-qualified function types in template argument deduction
504 11.3.2 Should use of a variable in its own initializer require a diagnostic?
511 12 POD-structs with template assignment operators
523 6.7.4.2 Can a one-past-the-end pointer be invalidated by deleting an adjacent object?
528 8.2.8 Why are incomplete class types not allowed with typeid?
545 16.3.1.2 User-defined conversions and built-in operator overload resolution
562 6.4.3.1 qualified-ids in non-expression contexts
563 10.5 Linkage specification for objects
578 5.2 Phase 1 replacement of characters with universal-character-names
579 17.2 What is a “nested” > or >>?
581 15.1 Can a templated constructor be explicitly instantiated or specialized?
600 14 Does access control apply to members or to names?
607 15.6.2 Lookup of mem-initializer-ids
640 6.6.3 Accessing destroyed local objects of static storage duration
670 11.6 Copy initialization via derived-to-base conversion in the second step
689 6.9.1 Maximum values of signed and unsigned integers
697 17.9.2 Deduction rules apply to more than functions
698 4.6 The definition of “sequenced before” is too narrow
708 17.6.5 Partial specialization of member templates of class templates
718 14.3 Non-class, non-function friend declarations
742 8.2.6 Postfix increment/decrement with long bit-field operands
745 19.5 Effect of ill-formedness resulting from #error
783 3 Definition of “argument”
813 10.3.3 typename in a using-declaration with a non-dependent name
852 10.3.3 using-declarations and dependent base classes
897 19.9 _Pragma and extended string-literals
916 _N2914_.14.10.2.1 Does a reference type have a destructor?
925 19.1 Type of character literals in preprocessor expressions
949 4.1 Requirements for freestanding implementations
954 16.6 Overload resolution of conversion operator templates with built-in types
1028 17.7.4 Dependent names in non-defining declarations
1038 16.4 Overload resolution of &x.static_func
1046 17.8.2 What is a “use” of a class specialization?
1049 15.8 Copy elision through reference parameters of inline functions
1157 17.6.6.2 Partial ordering of function templates is still underspecified
1200 6.4.1 Lookup rules for template parameters
1209 6.2 Is a potentially-evaluated expression in a template definition a “use?”
1221 17.9.2.4 Partial ordering and reference collapsing
1230 8.3.1 Confusing description of ambiguity of destructor name
1248 C.1 Updating Annex C to C99
1256 8.20 Unevaluated operands are not necessarily constant expressions
1257 17.7 Instantiation via non-dependent references in uninstantiated templates
1266 5.13.8 user-defined-integer-literal overflow
1285 6.8 Trivial destructors and object lifetime
1378 17.8.1 When is an instantiation required?
1403 5.7 Universal-character-names in comments
1459 16.3.3.2 Reference-binding tiebreakers in overload resolution
1500 17.7.4.2 Name lookup of dependent conversion function
1549 16.5.2 Overloaded comma operator with void operand
1599 11.6.4 Lifetime of initializer_list underlying array
1602 17.8.1 Linkage of specialization vs linkage of template arguments
1609 11.3.6 Default arguments and function parameter packs
1617 10.6.2 alignas and non-defining declarations
1619 17.7.2.1 Definition of current instantiation
1620 16.5.8 User-defined literals and extended integer types
1625 19.3.2 Adding spaces between tokens in stringizing
1628 8.3.4 Deallocation function templates
1632 8.1.5 Lambda capture in member initializers
1642 8 Missing requirements for prvalue operands
1644 17.6.6.1 Equivalent exception-specifications in function template declarations
1659 6.6.2 Initialization order of thread_local template static data members
1682 6.7.4.1 Overly-restrictive rules on function templates as allocation functions
1698 5.2 Files ending in \
1742 10.3.3 using-declarations and scoped enumerators
1763 17.9.2.5 Length mismatch in template type deduction
1771 6.4.3 Restricted lookup in nested-name-specifier
1781 16.3.1.5 Converting from nullptr_t to bool in overload resolution
1818 10.5 Visibility and inherited language linkage
1820 10.1.3 Qualified typedef names
1821 12.2 Qualified redeclarations in a class member-specification
1822 8.1.5 Lookup of parameter names in lambda-expressions
1829 17.7.2.1 Dependent unnamed types
1856 17.8.1 Indirect nested classes of class templates
1894 10.1.3 typedef-names and using-declarations
1918 17.6.4 friend templates with dependent scopes
1919 16.3.1.2 Overload resolution for ! with explicit conversion operator
1943 12.2.4 Unspecified meaning of “bit”
1944 C New C incompatibilities
1945 17.6.4 Friend declarations naming members of class templates in non-templates
1953 4.4 Data races and common initial sequence
1954 8.2.8 typeid null dereference check in subexpressions
1969 15.4 Missing exclusion of ~S as an ordinary function name
1972 5.10 Identifier character restrictions in non-identifiers
1974 17.7 Redundant specification of non-type typename-specifier
2002 19 White space within preprocessing directives
2009 6.3.7 Unclear specification of class scope
2048 8.2.9 C-style casts that cast away constness vs static_cast
2054 17.9.2 Missing description of class SFINAE
2067 17.7 Generated variadic templates requiring empty pack
2087 8.8 Left shift of negative value by zero bits
2105 17.3 When do the arguments for a parameter pack end?
2118 17.7.5 Stateful metaprogramming via friend injection
2123 9.7 Omitted constant initialization of local static variables
2133 7.13 Converting std::nullptr_t to bool
2160 17.6.6.2 Issues with partial ordering
2168 11.6.4 Narrowing conversions and +/- infinity
2173 17.6.5 Partial specialization with non-deduced contexts
2185 6.9.1 Cv-qualified numeric types
2188 10 empty-declaration ambiguity
2189 16.3.1.1.2 Surrogate call template
2190 19.1 Insufficient specification of __has_include
2192 8.20 Constant expressions and order-of-eval undefined behavior
2195 10.1.7.1 Unsolicited reading of trailing volatile members
2212 10.1.3 Typedef changing linkage after use
2232 10.1.1 thread_local anonymous unions
2244 14.4 Base class access in aggregate initialization
2250 17.7.4.1 Implicit instantiation, destruction, and TUs
2258 6.8 Storage deallocation during period of destruction
2284 8.2.2 Sequencing of braced-init-list arguments
2301 8.20 Value-initialization and constexpr constructor evaluation
2306 17.6.4 Nested friend templates of class templates
2311 16.3.1.7 Missed case for guaranteed copy elision
2328 17.9.2.5 Unclear presentation style of template argument deduction rules
2334 4.5 Creation of objects by typeid
2335 12.2.3.2 Deduced return types vs member types
2337 16.3.3.2 Incorrect implication of logic ladder for conversion sequence tiebreakers
2340 11.5 Reference collapsing and structured bindings
2347 8.2.2 Passing short scoped enumerations to ellipsis
2350 17.9.2.4 Forwarding references and deduction guides
2354 6.11 Extended alignment and object representation
2357 6.4.1 Lookup in member function declarations
2360 10.6.6 [[maybe_unused]] and structured bindings
2361 21.10.2 Unclear description of longjmp undefined behavior
2362 11.4.1 __func__ should be constexpr
2363 14.3 Opaque enumeration friend declarations
2364 8.20 Constant expressions, aggregate initialization, and modifications
2365 8.2.7 Confusing specification for dynamic_cast


Issues with "Concurrency" Status:

Issue Section Title
1842 4.7 Unevaluated operands and “carries a dependency”
2298 4.7.1 Actions and expression evaluation


Issues with "Dup" Status:

Issue Section Title
12 6.4.2 Default arguments on different declarations for the same function and the Koenig lookup
15 11.3.6 Default arguments for parameters of function templates
72 17 Linkage and storage class specifiers for templates
79 21.6.2.3 Alignment and placement new
82 6.2 Definition of "using" a constant expression
133 18.4 Exception specifications and checking
155 11.6 Brace initializer for scalar
200 17.6.6.2 Partial ordering and explicit arguments
265 8.3.5 Destructors, exceptions, and deallocation
313 8.3.4 Class with single conversion function to integral as array size in new
321 6.4.2 Associated classes and namespaces for argument-dependent lookup
375 17.7 Confusing example on lookup with typename
507 16.6 Ambiguity assigning class object to built-in type
548 11.3 qualified-ids in declarations
550 11.3.5 Pointer to array of unknown bound in parameter declarations
595 18.4 Exception specifications in templates instantiated from class bodies
747 14.2 Access of protected base classes
839 8.3.3 sizeof with opaque enumerations
998 11.3.5 Function parameter transformations and template functions
1019 13 Dependent simple-template-ids in base-specifiers and mem-initializers
1023 17.3.2 thread_local objects as non-type template arguments
1039 10.6.2 Coordinating C and C++ alignment specifications
1041 12.2 alias-declarations as class members
1052 15.8 const non-static data member and PODness
1203 12.2.3.2 Misleading note regarding initialized static data members
1205 16.3.3.1.4 Lvalue reference binding and function viability
1300 8.2.3 T() for array types
1337 17.9.2.4 Partial ordering and non-deduced parameters
1349 17.6.7 Consistency of alias template redeclarations
1373 16.3.1.6 Overload resolution changes matching reference-binding changes
1377 C.2 Access declarations not mentioned in Annex C
1422 5.13.3 Type of character literals containing universal-character-names
1445 9.5.4 Argument-dependent lookup of begin and end
1498 9.5.4 Lifetime of temporaries in range-based for
1505 11.6.4 Direct binding of reference to temporary in list-initialization
1526 17.7.2 Dependent-class lookup in the current instantiation
1534 6.10 cv-qualification of prvalue of type “array of class”
1568 15.2 Temporary lifetime extension with intervening cast
1654 6.9 Literal types and constexpr defaulted constructors
1855 15.7 Out-of-lifetime access to nonstatic data members
1927 8.1.5 Lifetime of temporaries in init-captures
1994 17.8.3 Confusing wording regarding multiple template<> prefixes
2021 17.6.6.1 Function template redeclaration via alias template
2025 17.6.6.1 Declaration matching via alias templates
2029 8.2.2 Abstract class return type in decltype operand
2269 11.6.1 Additional recursive references in aggregate DMIs
2291 16.3.3.1 Implicit conversion sequences in non-call contexts
2314 11.5 Structured bindings and lambda capture
2326 17.9.2.1 Type deduction with initializer list containing ambiguous functions


Issues with "NAD" Status:

Issue Section Title
3 17.8.3 The template compilation model rules render some explicit specialization declarations not visible during instantiation
7 14.2 Can a class with a private virtual base class be derived from?
13 10.5 extern "C" for Parameters of Function Templates
14 10.5 extern "C" functions and declarations in different namespaces
17 14.2 Footnote 99 should discuss the naming class when describing members that can be accessed from friends
18 11.3.5 f(TYPE) where TYPE is void should be allowed
19 14.4 Clarify protected member access
23 17.6.6.2 Some questions regarding partial ordering of function templates
26 15.8 Copy constructors and default arguments
27 16.6 Overload ambiguities for builtin ?: prototypes
31 8.3.4 Looking up new/delete
34 17.8.1 Argument dependent lookup and points of instantiation
37 18.5.2 When is uncaught_exception() true?
42 6.3.7 Redefining names from base classes
46 17.8.2 Explicit instantiation of member templates
47 17.6.4 Template friend issues
50 6.2 Converting pointer to incomplete type to same type
55 8.7 Adding/subtracting pointer and enumeration value
61 16.4 Address of static member function "&p->f"
66 11.3.6 Visibility of default args vs overloads added after using-declaration
71 8 Incorrect cross reference
81 C Null pointers and C compatibility
88 17.8.3 Specialization of member constant templates
91 6.4.2 A union's associated types should include the union itself
95 10.3.1.2 Elaborated type specifiers referencing names declared in friend decls
97 8.20 Use of bool constants in integral constant expressions
99 17.9.2.1 Partial ordering, references and cv-qualifiers
102 16.3.1.2 Operator lookup rules do not work well with parts of the library
104 18.1 Destroying the exception temp when no handler is found
107 10.5 Linkage of operator functions
109 10.3.3 Allowing ::template in using-declarations
111 15.8 Copy constructors and cv-qualifiers
114 17.6.2 Virtual overriding by template member function specializations
117 15.2 Timing of destruction of temporaries
130 8.3.4 Sequence points and new-expressions
132 6.5 Local types and linkage
154 10.1.1 Anonymous unions in unnamed namespaces
165 10.3.1.2 Definitions of friends and block-scope externs
167 _N3225_.D.2 Deprecating static functions
168 10.5 C linkage for static member functions
169 10.3.3 template-ids in using-declarations
174 _N3225_.D.2 Undeprecating global static
182 17.8.3 Access checking on explicit specializations
203 8.3.1 Type of address-of-member expression
209 14.3 Must friend declaration names be accessible?
211 18 Constructors should not be allowed to return normally after an exception
219 18.5.1 Cannot defend against destructors that throw exceptions
225 6.4.2 Koenig lookup and fundamental types
229 17.6.5 Partial specialization of function templates
230 13.4 Calls to pure virtual functions
231 6.4.1 Visibility of names after using-directives
234 6.8 Reuse of base class subobjects
236 8.20 Explicit temporaries and integral constant expressions
243 16.3.3.1.2 Weighting of conversion functions in direct-initialization
247 16.4 Pointer-to-member casts and function overload resolution
266 A No grammar sentence symbol
269 6.6.2 Order of initialization of multiply-defined static data members of class templates
285 17.8.3 Identifying a function template being specialized
290 6.9 Should memcpy be allowed into a POD with a const member?
294 8.2.9 Can static_cast drop exception specifications?
303 7.6 Integral promotions on bit-fields
307 15.7 Initialization of a virtual base class subobject
308 18.3 Catching exceptions with ambiguous base classes
311 10.3.1 Using qualified name to reopen nested namespace
315 12.2.3.1 Is call of static member function through null pointer undefined?
316 17.7.1 Injected-class-name of template used as template template parameter
333 11.2 Ambiguous use of "declaration" in disambiguation section
334 17.7.2.2 Is a comma-expression dependent if its first operand is?
340 11.2 Unclear wording in disambiguation section
346 18.4 Typo in 15.4
347 12.2.5 Use of derived class name in defining base class nested class
356 15.8 Wording of behavior of generated copy constructor for scalar members
358 10.5 Namespaces and extern "C"
359 12.3 Type definition in anonymous union
363 15.6.1 Initialization of class from self
376 10.1.2 Class "definition" versus class "declaration"
384 6.4.2 Argument-dependent lookup and operator functions
395 15.3.2 Conversion operator template syntax
412 10.1.2 Can a replacement allocation function be inline?
422 10.1.3 Is a typedef redeclaration allowed with a template type that might be the same?
423 16.3.1.2 Can a conversion be done on the left operand of a compound assignment?
434 11.6.3 Unclear suppression of standard conversions while binding reference to lvalue
435 10 Change "declararation or definition" to "declaration"
444 15.8 Overriding and the generated copy assignment operator
445 14.3 Wording issue on friend declarations
449 3 Consistency in use of hyphen with names of "non" entities
456 7.11 Is initialized const int or const bool variable a null pointer constant?
461 10.4 Make asm conditionally-supported
465 6.6.2 May constructors of global objects call exit()?
467 9.7 Jump past initialization of local static variable
469 17.9.2.5 Const template specializations and reference arguments
471 14.2 Conflicting inherited access specifications
478 11.3.4 May a function parameter be an array of an abstract class type?
487 8.20 Operator overloading in constant expressions
489 17.8.1 Must member function templates be instantiated during overload resolution?
501 14.3 Visibility of friend declarations within the befriending class
512 12.3 Union members with user-declared non-default constructors
533 19.2 Special treatment for C-style header names
544 17.7.2 Base class lookup in explicit specialization
552 17.2 Use of typename in the type in a non-type parameter-declaration
553 10.3.1.2 Problems with friend allocation and deallocation functions
566 7.10 Conversion of negative floating point values to integer type
567 8.7 Can size_t and ptrdiff_t be larger than long?
574 15.8 Definition of “copy assignment operator”
584 6.10 Unions and aliasing
585 14.3 Friend template template parameters
586 17.9.2.5 Default template-arguments and template argument deduction
593 18.3 Falling off the end of a destructor's function-try-block handler
596 _N4606_.15.5.2 Replacing an exception object
610 8.3.1 Computing the negative of 0U
622 8.9 Relational comparisons of arbitrary pointers
627 6.9.1 Values behaving as types
635 6.4.3.1 Names of constructors and destructors of templates
643 10.1.7.2 Use of decltype in a class member-specification
646 6.9 Can a class with a constexpr copy constructor be a literal type?
662 17.9.2 Forming a pointer to a reference type
669 10.1.7.2 Confusing specification of the meaning of decltype
673 10.3.1.2 Injection of names from elaborated-type-specifiers in friend declarations
706 10.1.7.4 Use of auto with rvalue references
733 15.8 Reference qualification of copy assignment operators
736 11 Is the & ref-qualifier needed?
795 8.1.5 Dependency of lambdas on <functional>
800 8.2.10 Safely-derived pointers and object pointers converted from function pointers
807 8.20 typeid expressions in constant expressions
819 15 Access control and deleted implicitly-declared special member functions
822 17 Additional contexts for template aliases
829 18.4 At what point is std::unexpected called?
836 10.6.8 [[noreturn]] applied to function types
885 17.9.2.4 Partial ordering of function templates with unordered parameter pairs
893 10.2 Brace syntax for enumerator-definitions
902 12.2.3.2 In-class initialization of non-constant static data members
909 8.4 Old-style casts with conversion functions
937 5.13.8 Restrictions on values of template arguments in user-defined literals
947 17.9.3 Deducing type template arguments from default function arguments
958 8.1.5 Lambdas and decltype
967 6.7.4 Exception specification of replacement allocation function
982 11.6.4 Initialization with an empty initializer list
992 15.8 Inheriting explicitness
1002 17.6.3 Pack expansion for function arguments
1005 12.2.2 Qualified name resolution in member functions of class templates
1007 14.4 Protected access and pointers to members
1014 17.9.2.1 Overload resolution between const T& and T&&
1026 6.10 Cv-qualified non-class rvalues
1040 4.7 Memory model issues
1045 17.8.2 Requiring explicit instantiation declarations
1050 6.8 Effects of thread support on object lifetime
1053 18.4 Terminate vs undefined behavior for noexcept violation
1058 11.6.3 Reference binding of incompatible array types
1067 _N3225_.7.6.5 [[hiding]], using-declarations, and multiple inheritance
1078 11.6.4 Narrowing and the usual arithmetic conversions
1084 15.8 Conditions for a deleted move function
1085 15.8 Move assignment operators and virtual bases
1097 11.6.1 Aggregate initialization of function parameters
1108 5.13.8 User-defined literals have not been implemented
1110 6.2 Incomplete return type should be allowed in decltype operand
1118 8.1.5 Implicit lambda capture via explicit copy constructor
1124 8.5 Error in description of value category of pointer-to-member expression
1132 10.6.8 Keyword vs attribute for noreturn
1141 12.2 Non-static data member initializers have not been implemented
1143 12.2.2 Move semantics for *this have not been implemented
1150 _N4527_.12.9 Inheriting constructors have not been implemented
1162 17.7 Dependent elaborated-type-specifiers in non-deduced contexts
1163 17.8.2 extern template prevents inlining functions not marked inline
1179 17.1 Cv-qualification of non-type template parameters
1217 11.4.3 Are deleted functions implicitly noexcept?
1222 11.3.4 Unnecessary restriction on auto array types
1228 16.3.1.7 Copy-list-initialization and explicit constructors
1254 6.2 odr-use vs template arguments and constexpr functions
1259 8.3.5 Deleting a POD via a pointer to base
1263 11.6.3 Mismatch between rvalue reference binding and overload resolution
1272 12.2.3.2 Implicit definition of static data member of const literal type
1273 17.9.2 Accessibility and function signatures
1276 6.9.1 Reference to stdint.h
1277 21.4.1 Lax definition of intmax_t and uintmax_t
1280 6.8 Object reallocation and reference members
1281 17.7.2.1 Virtual and dependent base classes
1289 17.7.2.1 Can an alias template name the current instantiation?
1303 17 C language linkage for template with internal linkage
1314 8.7 Pointer arithmetic within standard-layout objects
1316 10.1.5 constexpr function requirements and class scope
1317 10.2 Unnamed scoped enumerations
1319 17.1 Error in pack expansion example
1323 10.6.1 Nonexistent nonterminal in alignment-specifier grammar
1325 10 Omitted declarator in friend declarations
1334 6.9 Layout compatibility and cv-qualification
1339 11.6 Parenthesized braced-init-list and arrays
1341 12.2 Bit-field initializers
1371 17.9.2.5 Deduction from T&& in return types
1379 11.6.4 Is std::initializer_list an aggregate?
1384 8.20 reinterpret_cast in constant expressions
1386 17.9.1 Explicitly-specified partial argument list with multiple parameter packs
1389 11.3.5 Recursive reference in trailing-return-type
1400 8.10 Function pointer equality
1407 8.20 Integral to bool conversion in converted constant expressions
1419 11.6.4 Evaluation order in aggregate initialization
1420 13.4 Abstract final classes
1421 11.6.4 Full expressions and aggregate initialization
1427 15.1 Default constructor and deleted or inaccessible destructors
1429 6.3.9 Scope of a member template's template parameter
1434 11.6 Parenthesized braced-init-list
1443 11.3.6 Default arguments and non-static data members
1448 6.9.1 Integral values of type bool
1461 11.6.4 Narrowing conversions to bit-fields
1470 4.7 Thread migration
1474 5.13.8 User-defined literals and <inttypes.h> format macros
1483 17.7 Non-dependent static_assert-declarations
1497 11.6.1 Aggregate initialization with parenthesized string literal
1501 11.6.4 Nested braces in list-initialization
1519 17.6.3 Conflicting default and variadic constructors
1520 17.6.7 Alias template specialization vs pack expansion
1525 8.2.3 Array bound inference in temporary array
1540 8.20 Use of address constants in constant expressions
1546 17.9.2 Errors in function template default arguments
1547 17.7 typename keyword in alias-declarations
1564 10.1.7.4 Template argument deduction from an initializer list
1565 11.6.4 Copy elision and lifetime of initializer_list underlying array
1566 8.3.4 Should new std::initializer_list<T> be ill-formed?
1574 11.4.2 Explicitly-defaulted constexpr functions in wrapper templates
1577 17.6.5 Unnecessary restrictions on partial specializations
1578 11.6 Value-initialization of aggregates
1585 8.2.5 Value category of member access of rvalue reference member
1586 15.4 Naming a destructor via decltype
1606 8.3.3 sizeof closure class
1624 18.2 Destruction of union members with member initializers
1627 10.6.2 Agreement of dependent alignas specifiers
1637 10.1.5 Recursion in constexpr template default constructor
1641 15.6.2 Assignment in member initializer
1650 11.6.3 Class prvalues in reference initialization
1661 4.7 Preservation of infinite loops
1663 8.1.5 Capturing an empty pack expansion
1667 18.1 Function exiting via exception called by destructor during unwinding
1671 17.9.2.1 Unclear rules for deduction with cv-qualification
1675 B Size limit for automatic array object
1678 8.3.3 Naming the type of an array of runtime bound
1679 9.5.4 Range-based for and array of runtime bound
1685 8.3.7 Value category of noexcept expression
1688 10.1.5 Volatile constexpr variables
1695 15.2 Lifetime extension via init-capture
1700 17.9.2.1 Does the special rvalue-reference deduction apply to alias templates?
1703 10.5 Language linkage of names of functions with internal linkage
1714 12.4 odr-use of this from a local class
1720 19.2 Macro invocation in #include directive
1725 10.1.7.4 Trailing return type with nested function declarator
1727 17.8.3 Type of a specialization of a variable template
1731 15.8 is_trivially_X and definitions of special member functions
1743 8.1.5 init-captures in nested lambdas
1745 10.1.5 thread_local constexpr variable
1749 6.6.2 Confusing definition for constant initializer
1754 17.6.5 Declaration of partial specialization of static data member template
1761 11.3.4 Runtime check on size of automatic array
1768 11.3.4 Zero-element array of runtime bound
1783 15.4 Why are virtual destructors non-trivial?
1785 17.7 Conflicting diagnostic requirements for template definitions
1792 17.8.3 Incorrect example of explicit specialization of member enumeration
1798 18.4 exception-specifications of template arguments
1826 8.20 const floating-point in constant expressions
1831 15.8 Explicitly vs implicitly deleted move constructors
1833 14.3 friend declarations naming implicitly-declared member functions
1867 11.2 Function/expression ambiguity with qualified parameter name
1869 10.5 thread_local vs linkage-specifications
1879 6.11 Inadequate definition of alignment requirement
1904 17.1 Default template arguments for members of class templates
1906 6.4.1 Name lookup in member friend declaration
1921 8.20 constexpr constructors and point of initialization of const variables
1928 15.8 Triviality of deleted special member functions
1933 B Implementation limit for initializer-list elements
1947 5.13.2 Digit separators following non-octal prefix
1948 6.7.4 exception-specification of replacement global new
1950 16.3.3.2 Restructuring description of ranks of conversion sequences
1960 10.3.3 Visibility of entity named in class-scope using-declaration
1964 10.1.3 opaque-enum-declaration in alias-declaration?
1968 8.20 Address of typeid in constant expressions
1970 11.2 Ambiguity resolution for (T())*x
1976 10.3.2 Ambiguity of namespace-aliases
1982 17.9.1 Deduction extending parameter pack
1984 11.6.4 Lossless narrowing conversions
1985 11.6.1 Unknown bound array member with brace-or-equal-initializer
1987 12.2.3.2 constexpr static data members across translation units
1998 6.10 Additional sources of xvalue expressions
2005 8.20 Incorrect constexpr reference initialization requirements
2014 21.6.2.2 Unneeded deallocation signatures
2030 14.2 Access of injected-class-name with template arguments
2034 18.5.2 Deprecating uncaught_exception()
2036 11 Refactoring parameters-and-qualifiers
2050 10.1.1 Consolidate specification of linkage
2060 10.1.7.4 Deduced return type for explicit specialization
2078 13.2 Name lookup of mem-initilizer-id
2119 13.3 Disambiguation of multi-level covariant return type
2134 _N4567_.5.1.1 Objectless references to non-static member functions
2135 15.6.2 mem-initializers for virtual bases of abstract classes
2136 6.4.2 Argument-dependent lookup and initializer lists
2138 17.8.3 Explicit member specialization vs implicit instantiation
2139 7.10 Floating-point requirements for integer representation
2142 6.4.2 Missing definition of associated classes and namespaces
2152 5.13.8 Can an alternative token be used as a ud-suffix?
2159 8.1.5 Lambda capture and local thread_local variables
2161 17.8.2 Explicit instantiation declaration and “preceding initialization”
2178 17.1 Substitution of dependent template arguments in default template arguments
2183 18.4 Problems in description of potential exceptions
2193 21.3.4.1 numeric_limits<int>::radix and digits
2200 17.9.1 Conversions in template argument deduction
2204 15.6.2 Naming delegated constructors
2208 12.2 static_assert-declaration does not declare a member
2209 18.2 Destruction of constructed array elements
2210 18.2 Principal/target constructor confusion
2216 18.4 Exception specifications in unevaluated contexts
2217 10.1.5 constexpr constructors for non-literal types
2225 8.2.10 reinterpret_cast to same floating-point type
2230 6.5 Linkage of extern "C" function in unnamed namespace
2231 8.2.5 Class member access to static data member template
2238 6.7.4.1 Contradictory alignment requirements for allocation
2239 8.3.5 Sized deallocation with a trivial destructor
2274 9.4.1 Generic lambda capture vs constexpr if
2279 10.6.1 Multiple attribute-specifiers in one attribute-list
2286 8.18 Assignment evaluation order
2288 10 Contradictory optionality in simple-declaration
2302 8.10 Address comparison between different member subobjects
2304 16.3.3.1 Incomplete type vs overload resolution
2308 11.5 Structured bindings and lambda capture
2348 9.4.1 Non-templated constexpr if
2349 9 Class/enumeration names vs conditions


Issues with "Concepts" Status:

Issue Section Title
723 9.7 Archetypes in skipped declarations
724 6.4.3 Qualified name lookup in a constrained context
725 11.3.5 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.5 Linkage of concept names
802 8.3.1 Problems with restrictions on taking the address of a member of a concept map
821 17 Exported concept map templates?
824 17.6.1 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 17.6.1 Unclear interaction of constraints and special member functions
844 12.2 Is a constrained member function a template?
848 _N2914_.14.11 Unconstrained template template parameters in constrained contexts
849 17.3.3 Constraints and template template parameters
851 17.6.7 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 9.5.4 Concept maps and the range-based for
867 17.2 Naming a specialization of a constrained template
868 17.2 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 15.3.2 Associated conversion functions converting to the same type
878 16.6 Effective class types in built-in pointer-to-member operator
881 17.1 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
917 7.11 Pointer conversions between archetypes
918 _N2914_.14.10.2.1 Declaration/expression ambiguity in associated function expressions


Issues with "Extension" Status:

Issue Section Title
476 8.3.4 Determining the buffer size for placement new
687 _N4567_.5.1.1 template keyword with unqualified-ids
728 17 Restrictions on local classes
794 7.12 Base-derived conversion in member type of pointer-to-member conversion
900 15.2 Lifetime of temporaries in range-based for
914 8.2.3 Value-initialization of array types
944 8.2.10 reinterpret_cast for all types with the same size and alignment
1008 8.3.6 Querying the alignment of an object
1077 10.3.1.2 Explicit specializations in non-containing namespaces
1326 17.9.2.1 Deducing an array bound from an initializer-list
1331 15.8 const mismatch with defaulted copy constructor
1393 17.6.3 Pack expansions in using-declarations
1426 11.4.2 Allowing additional parameter types in defaulted functions
1433 6.3.2 trailing-return-type and point of declaration
1451 17.3.2 Objects with no linkage in non-type template arguments
1463 17 extern "C" alias templates
1469 8.3.4 Omitted bound in array new-expression
1555 8.2.2 Language linkage and function type compatibility
1561 11.6.1 Aggregates with empty base classes
1643 17.1 Default arguments for template parameter packs
1790 11.3.5 Ellipsis following function parameter pack
1864 11.6.4 List-initialization of array objects
1871 5.13.8 Non-identifier characters in ud-suffix
1876 17.8.3 Preventing explicit specialization
1912 11.4.2 exception-specification of defaulted function
1914 10.6 Duplicate standard attributes
1915 15.6.2 Potentially-invoked destructors in non-throwing constructors
1923 8.3.1 Lvalues of type void
1931 8.1.5 Default-constructible and copy-assignable closure types
1934 18.4 Relaxing exception-specification compatibility requirements
1957 10.1.7.4 decltype(auto) with direct-list-initialization
2097 8.1.5 Lambdas and noreturn attribute
2111 11.6.3 Array temporaries in reference binding
2125 15.8 Copy elision and comma operator
2132 15.8 Deprecated default generated copy constructors
2169 16.3.3.1.5 Narrowing conversions and overload resolution
2261 17.6.4 Explicit instantiation of in-class friend definition
2270 17.8.2 Non-inline functions and explicit instantiation declarations
2295 11.6.1 Aggregates with deleted defaulted constructors
2296 17.9.2 Are default argument instantiation failures in the “immediate context”?
2320 9.4.1 constexpr if and boolean conversions
2341 10 Structured bindings with static storage duration
2343 17.1 void* non-type template parameters
2355 17.9.2.5 Deducing noexcept-specifiers


Issues with "DR" Status:

Issue Section Title
1271 17.7 Imprecise wording regarding dependent types
1862 17.6.4 Determining “corresponding members” for friendship
1893 8.2.3 Function-style cast with braced-init-lists and empty pack expansions
1910 6.7.4.1 “Shall” requirement applied to runtime behavior
1983 12.2 Inappropriate use of virt-specifier
2059 10.1.7.4 Linkage and deduced return types
2081 10.1.7.4 Deduced return type in redeclaration or specialization of function template
2088 17.9.2.4 Late tiebreakers in partial ordering
2092 17.9.3 Deduction failure and overload resolution
2164 6.3.10 Name hiding and using-directives
2177 8.3.4 Placement operator delete and parameter copies
2226 8.16 Xvalues vs lvalues in conditional expressions
2227 15.6.2 Destructor access and default member initializers
2229 12.2.4 Volatile unnamed bit-fields
2234 12 Missing rules for simple-template-id as class-name
2235 17.9.2.4 Partial ordering and non-dependent types
2241 8.2.2 Overload resolution is not invoked with a single function
2255 17.8 Instantiated static data member templates
2260 17.8.3 Explicit specializations of deleted member functions
2299 10.1.5 constexpr vararg functions
2305 17.8.2 Explicit instantiation of constexpr or inline variable template
2307 17.7.2.1 Unclear definition of “equivalent to a nontype template parameter”
2313 11.5 Redeclaration of structured binding reference variables
2315 15.8 What is the “corresponding special member” of a variant member?
2338 8.2.9 Undefined behavior converting to short enums with fixed underlying types
2342 8.2.10 Reference reinterpret_cast and pointer-interconvertibility
2346 11.3.6 Local variables in default arguments


Issues with "accepted" Status:

Issue Section Title
2237 15.1 Can a template-id name a constructor?
2323 6.9 Expunge POD


Issues with "DRWP" Status:

Issue Section Title
943 8.2.3 Is T() a temporary?
1076 6.10 Value categories and lvalue temporaries
1299 15.2 “Temporary objects” vs “temporary expressions”
1523 9.5.4 Point of declaration in range-based for
1704 17.8.2 Type checking in explicit instantiation of variable templates
1728 17.8.2 Type of an explicit instantiation of a variable template
1836 _N4567_.5.1.1 Use of class type being defined in trailing-return-type
2253 12.2.4 Unnamed bit-fields and zero-initialization
2273 15.1 Inheriting constructors vs implicit default constructor
2277 16.3.3.2 Ambiguity inheriting constructors with default arguments
2287 6.9.2 Pointer-interconvertibility in non-standard-layout unions
2290 16.3.1 Unclear specification for overload resolution and deleted special member functions


Issues with "WP" Status:

Issue Section Title


Issues with "TC1" Status:

Issue Section Title
1 11.3.6 What if two using-declarations refer to the same function but the declarations introduce different default-arguments?
20 15.8 Some clarifications needed for 12.8 para 15
21 17.1 Can a default argument for a template parameter appear in a friend declaration?
22 17.7.4 Template parameter with a default argument that refers to itself
24 17.8.3 Errors in examples in 14.7.3
25 18.4 Exception specifications and pointers to members
30 17.2 Valid uses of "::template"
32 17 Clarification of explicit instantiation of non-exported templates
33 6.4.2 Argument dependent lookup and overloaded functions
35 11.6 Definition of default-initialization
38 17.2 Explicit template arguments and operator functions
40 11.3 Syntax of declarator-id
41 6.4.1 Clarification of lookup of names after declarator-id
43 6.9 Copying base classes (PODs) using memcpy
48 12.2.3.2 Definitions of unused static members
49 17.1 Restriction on non-type, non-value template arguments
51 16.3.3 Overloading and user-defined conversions
52 8.2.5 Non-static members, member selection and access checking
53 8.2.9 Lvalue-to-rvalue conversion before certain static_casts
56 10.1.3 Redeclaring typedefs within classes
59 16.3.1.4 Clarification of overloading and UDC to reference type
64 17.8.3 Partial ordering to disambiguate explicit specialization
65 11.3.6 Typo in default argument example
67 12.2.3 Evaluation of left side of object-expression
68 10.1.7.3 Grammar does not allow "friend class A<int>;"
69 10.1.1 Storage class specifiers on template declarations
73 8.10 Pointer equality
74 8.3.4 Enumeration value in direct-new-declarator
75 12.2 In-class initialized members must be const
76 10.1.7.1 Are const volatile variables considered "constant expressions"?
80 12.2 Class members with same name as class
83 16.3.3.2 Overloading and deprecated conversion of string literal
84 16.3.3.1 Overloading and conversion loophole used by auto_ptr
85 6.4.4 Redeclaration of member class
89 6.8 Object lifetime does not account for reference rebinding
90 6.4.2 Should the enclosing class be an "associated class" too?
93 6.8 Missing word in 3.8 basic.life paragraph 2
94 8.20 Inconsistencies in the descriptions of constant expressions
98 18 Branching into try block
100 17.3.2 Clarify why string literals are not allowed as template arguments
101 10.3.3 Redeclaration of extern "C" names via using-declarations
103 10.3.4 Is it extended-namespace-definition or extension-namespace-definition ?
105 17 Meaning of "template function"
108 17.7.2.1 Are classes nested in templates dependent?
116 17.6.6.1 Equivalent and functionally-equivalent function templates
120 17.7 Nonexistent non-terminal qualified-name
121 17.7 Dependent type names with non-dependent nested-name-specifiers
123 _N4567_.5.1.1 Bad cross-reference
126 18.4 Exception specifications and const
127 8.3.4 Ambiguity in description of matching deallocation function
128 8.2.9 Casting between enum types
131 _N2691_.E Typo in Lao characters
134 17 Template classes and declarator-ids
135 11.3.5 Class type in in-class member function definitions
137 8.2.9 static_cast of cv void*
142 14.2 Injection-related errors in access example
145 D.2 Deprecation of prefix ++
147 _N4567_.5.1.1 Naming the constructor
148 12 POD classes and pointers to members
149 7.11 Accessibility and ambiguity
151 11.6 Terminology of zero-initialization
152 15.3.1 explicit copy constructors
153 16.3.3.2 Misleading wording (rank of conversion)
159 11.3 Namespace qualification in declarators
161 14.4 Access to protected nested type
163 11.6.1 Description of subaggregate initializer
164 6.4.2 Overlap between Koenig and normal lookup
166 10.3.1.2 Friend declarations of template-ids
171 10.3 Global namespace scope
173 5.3 Constraints on execution character set
176 12 Name injection and templates
178 11.6 More on value-initialization
179 8.7 Function pointers and subtraction
181 17.9.2.5 Errors in template template-parameter example
183 17.7 typename in explicit specializations
185 15.8 "Named" temporaries and copy elision
187 17.1 Scope of template parameter names
188 8.19 Comma operator and rvalue conversion
190 12.2 Layout-compatible POD-struct types
193 15.4 Order of destruction of local automatics of destructor
194 15.1 Identifying constructors
202 16.4 Use of overloaded function name
206 17.7.3 Semantic constraints on non-dependent names
210 18.3 What is the type matched by an exception handler?
213 17.7.2 Lookup in dependent base classes
217 11.3.6 Default arguments for non-template member functions of class templates
227 9.4 How many scopes in an if statement?
235 15.6.2 Assignment vs initialization
241 17.9.1 Error in example in 14.8.1
249 17.6.1.1 What is a member function template?
250 16.4 Address of function template specialization with non-deduced template arguments
304 11.6 Value-initialization of a reference


Issues with "CD1" Status:

Issue Section Title
4 10.5 Does extern "C" affect the linkage of function names with internal linkage?
5 11.6 CV-qualifiers and type conversions
8 14 Access to template arguments used in a function return type and in the nested name specifier
9 14.2 Clarification of access to base class members
10 14.7 Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?
11 10.3.3 How do the keywords typename/template interact with using-declarations?
16 14.2 Access to members of indirect private base classes
28 6.6.3 'exit', 'signal' and static object destruction
29 10.5 Linkage of locally declared functions
39 13.2 Conflicting ambiguity rules
44 17.8.3 Member specializations
45 14.7 Access to nested classes
54 8.2.9 Static_cast from private base to derived class
58 12.2.4 Signedness of bit fields of enum type
60 16.3.3.1.4 Reference binding and valid conversion sequences
62 17.3.1 Unnamed members of classes used as type parameters
63 17.8.1 Class instantiation from pointer conversion to void*, null and self
70 17.9.2.5 Is an array bound a nondeduced context?
77 14.3 The definition of friend does not allow nested classes to be friends
78 11.6 Section 8.5 paragraph 9 should state it only applies to non-static objects
86 15.2 Lifetime of temporaries in query expressions
87 18.4 Exception specifications on function parameters
106 unknown Creating references to references during template deduction/instantiation
112 11.3.4 Array types and cv-qualifiers
113 8.2.2 Visibility of called function
115 16.4 Address of template-id
118 8.2.2 Calls via pointers to virtual member functions
119 6.8 Object lifetime and aggregate initialization
122 _N4567_.5.1.1 template-ids as unqualified-ids
124 15.2 Lifetime of temporaries in default initialization of class arrays
125 _N4567_.5.1.1 Ambiguity in friend declaration syntax
136 11.3.6 Default arguments and friend declarations
139 6.4.1 Error in friend lookup example
140 11.3.5 Agreement of parameter declarations
141 6.4.5 Non-member function templates in member access expressions
143 6.4.2 Friends and Koenig lookup
158 6.10 Aliasing and qualification conversions
160 11.2 Missing std:: qualification
162 16.3.1.1 (&C::f)() with nonstatic members
172 10.2 Unsigned int as underlying type of enum
175 12 Class name injection and base name access
177 11.6 Lvalues vs rvalues in copy-initialization
180 17.7 typename and elaborated types
184 17.1 Default arguments in template template-parameters
195 8.2.10 Converting between function and object pointers
197 17.7.4.2 Issues with two-stage lookup of dependent names
198 12.4 Definition of "use" in local and nested classes
199 15.2 Order of destruction of temporaries
201 15.2 Order of destruction of temporaries in initializers
204 17 Exported class templates
207 14.2 using-declarations and protected access
208 18.1 Rethrowing exceptions in nested handlers
214 17.6.6.2 Partial ordering of function templates is underspecified
215 17.1 Template parameters are not allowed in nested-name-specifiers
216 6.5 Linkage of nameless class-scope enumeration types
218 6.4.2 Specification of Koenig lookup
220 6.7.4.2 All deallocation functions should be required not to throw
221 16.5.3 Must compound assignment operators be member functions?
222 8 Sequence points and lvalue-returning operators
224 17.7.2.1 Definition of dependent names
226 17.1 Default template arguments for function templates
228 17.2 Use of template keyword with non-member templates
237 17.8.2 Explicit instantiation and base class members
239 16.3.1.1.1 Footnote 116 and Koenig lookup
244 15.4 Destructor lookup
245 6.4.4 Name lookup in elaborated-type-specifiers
246 17.3 Jumps in function-try-block handlers
252 15.4 Looking up deallocation functions in virtual destructors
254 6.4.4 Definitional problems with elaborated-type-specifiers
256 8.3.4 Overflow in size calculations
258 10.3.3 using-declarations and cv-qualifiers
259 17.8 Restrictions on explicit specialization and instantiation
261 6.2 When is a deallocation function "used?"
262 11.3.5 Default arguments and ellipsis
263 15.1 Can a constructor be declared a friend?
270 6.6.2 Order of initialization of static data members of class templates
272 15.4 Explicit destructor invocation and qualified-ids
273 12 POD classes and operator&()
274 6.8 Cv-qualification and char-alias access to out-of-lifetime objects
275 17.8.3 Explicit instantiation/specialization and using-directives
276 9.6 Order of destruction of parameters and temporaries
277 11.6 Zero-initialization of pointers
280 16.3.1.1.2 Access and surrogate call functions
281 10.1.2 inline specifier in friend declarations
283 10.1.7.2 Template type-parameters are not syntactically type-names
284 12 qualified-ids in class declarations
286 17.6.5 Incorrect example in partial specialization
288 8.3.5 Misuse of "static type" in describing pointers
289 6.2 Incomplete list of contexts requiring a complete type
291 11.6.3 Overload resolution needed when binding reference to class rvalue
295 11.3.5 cv-qualifiers on function types
296 15.3.2 Can conversion functions be static?
298 6.4.3.1 T::x when T is cv-qualified
299 8.3.4 Conversion on array bound expression in new
300 17.9.2.5 References to functions in template argument deduction
301 17.2 Syntax for template-name
302 11.6 Value-initialization and generation of default constructor
305 6.4.5 Name lookup in destructor call
306 13.2 Ambiguity by class name injection
309 6 Linkage of entities whose names are not simply identifiers, in introduction
317 10.1.2 Can a function be declared inline after it has been called?
318 6.4.3.1 struct A::A should not name the constructor of A
319 6.5 Use of names without linkage in declaring entities with linkage
320 15.2 Question on copy constructor elision example
322 17.9.2.3 Deduction of reference conversions
323 17 Where must export appear?
324 8.3.1 Can "&" be applied to assignment to bit-field?
326 15.1 Wording for definition of trivial constructor
327 12 Use of "structure" without definition
328 12.2 Missing requirement that class member types be complete
329 17.6.4 Evaluation of friends of templates
331 15.1 Allowed copy constructor signatures
335 17 Allowing export on template members of nontemplate classes
336 17.8.3 Explicit specialization examples are still incorrect
337 17.9.2 Attempt to create array of abtract type should cause deduction to fail
339 8.20 Overload resolution in operand of sizeof in constant expression
345 17.7 Misleading comment on example in templates chapter
348 6.7.4.2 delete and user-written deallocation functions
349 17.9.2.3 Template argument deduction for conversion functions and qualification conversions
351 8 Sequence point error: unspecified or undefined?
352 17.9.2.1 Nondeduced contexts
353 8.3.5 Is deallocation routine called if destructor throws exception in delete?
354 17.3.2 Null as nontype template argument
357 3 Definition of signature should include name
362 5.2 Order of initialization in instantiation units
364 16.3.1.1.1 Calling overloaded function with static in set, with no object
366 8.20 String literal allowed in integral constant expression?
367 8.20 throw operator allowed in constant expression?
368 17.9.2 Uses of non-type parameters that should cause deduction to fail
370 19.2 Can #include <...> form be used other than for standard C++ headers?
372 17.3 Is access granted by base class specifiers available in following base class specifiers?
377 10.2 Enum whose enumerators will not fit in any integral type
378 9.6 Wording that says temporaries are declared
379 12 Change "class declaration" to "class definition"
381 6.4.5 Incorrect example of base class member lookup
382 17.7 Allow typename outside of templates
383 12 Is a class with a declared but not defined destructor a POD?
385 14.4 How does protected member check of 11.5 interact with using-declarations?
387 17.7.5 Errors in example in 14.6.5
389 6.5 Unnamed types in entities with linkage
390 13.4 Pure virtual must be defined when implicitly called
391 11.6.3 Require direct binding of short-lived references to rvalues
392 15.2 Use of full expression lvalue before temporary destruction
394 19 identifier-list is never defined
396 10.1.2 Misleading note regarding use of auto for disambiguation
397 10.1.2 Same address for string literals from default arguments in inline functions?
398 17.9.2 Ambiguous wording on naming a type in deduction
400 6.4.3.2 Using-declarations and the "struct hack"
401 17.1 When is access for template parameter default arguments checked?
403 6.4.2 Reference to a type as a template-id
404 6.8 Unclear reference to construction with non-trivial constructor
406 12.2.3.2 Static data member in class with name for linkage purposes
409 17.7 Obsolete paragraph missed by changes for issue 224
410 17.6.4 Paragraph missed in changes for issue 166
413 12 Definition of "empty class"
414 6.4.5 Multiple types found on destructor lookup
415 17.9.3 Template deduction does not cause instantiation
416 16.3.1.2 Class must be complete to allow operator lookup?
417 12.1 Using derived-class qualified name in out-of-class nested class definition
420 16.5.6 postfixexpression->scalar_type_dtor() inconsistent
421 8.2.5 Is rvalue.field an rvalue?
424 10.1.3 Wording problem with issue 56 resolution on redeclaring typedefs in class scope
425 16.6 Set of candidates for overloaded built-in operator with float operand
427 8.2.9 static_cast ambiguity: conversion versus cast to derived
428 18.1 Mention of expression with reference type
429 8.3.4 Matching deallocation function chosen based on syntax or signature?
430 11.6.1 Ordering of expression evaluation in initializer list
432 6.3.7 Is injected class name visible in base class specifier list?
433 6.3.2 Do elaborated type specifiers in templates inject into enclosing namespace scope?
436 12.2.4 Problem in example in 9.6 paragraph 4
437 12.2 Is type of class allowed in member function exception specification?
439 8.2.9 Guarantees on casting pointer back to cv-qualified version of original type
441 6.6.2 Ordering of static reference initialization
442 8.3.5 Incorrect use of null pointer constant in description of delete operator
443 15.2 Wording nit in description of lifetime of temporaries
446 8.16 Does an lvalue-to-rvalue conversion on the "?" operator produce a temporary?
447 17.7.2.3 Is offsetof type-dependent?
450 11.6.3 Binding a reference to const to a cv-qualified array rvalue
451 8 Expressions with invalid results and ill-formedness
452 12.2.2.1 Wording nit on description of this
454 12.2.3.2 When is a definition of a static data member required?
457 8.20 Wording nit on use of const variables in constant expressions
460 10.3.3 Can a using-declaration name a namespace?
463 8.2.10 reinterpret_cast<T*>(0)
464 15.2 Wording nit on lifetime of temporaries to which references are bound
466 8.2.4 cv-qualifiers on pseudo-destructor type
468 17.2 Allow ::template outside of templates
470 17.8.2 Instantiation of members of an explicitly-instantiated class template
474 6.5 Block-scope extern declarations in namespace members
477 10.1.2 Can virtual appear in a friend declaration?
479 18.1 Copy elision in exception handling
480 7.12 Is a base of a virtual base also virtual?
484 13 Can a base-specifier name a cv-qualified class type?
485 6 What is a “name”?
486 17.9.2 Invalid return types and template argument deduction
488 17.9.2 Local types, overload resolution, and template argument deduction
491 11.6.1 Initializers for empty-class aggregrate members
492 8.2.8 typeid constness inconsistent with example
494 14 Problems with the resolution of issue 45
497 8.5 Missing required initialization in example
500 14.3 Access in base-specifiers of friend and nested classes
505 5.13.3 Conditionally-supported behavior for unknown character escapes
506 8.2.2 Conditionally-supported behavior for non-POD objects passed to ellipsis
509 11.6 Dead code in the specification of default initialization
510 15.6 Default initialization of POD classes?
513 4.5 Non-class “most-derived” objects
514 6.4.1 Is the initializer for a namespace member in the scope of the namespace?
515 17.7.2 Non-dependent references to base class members
516 10.1.7.2 Use of signed in bit-field declarations
517 17.6.5 Partial specialization following explicit instantiation
518 10.2 Trailing comma following enumerator-list
519 7.11 Null pointer preservation in void* conversions
520 8.4 Old-style casts between incomplete class types
521 6.7.4.1 Requirements for exceptions thrown by allocation functions
522 17.9.2.1 Array-to-pointer decay in template argument deduction
524 17.7.2 Can function-notation calls to operator functions be dependent?
525 17.8.1 Missing * in example
526 17.9.2.5 Confusing aspects in the specification of non-deduced contexts
530 8.20 Nontype template arguments in constant expressions
534 17 template-names and operator-function-ids
537 3 Definition of “signature”
538 12 Definition and usage of structure, POD-struct, POD-union, and POD class
540 10.3.1 Propagation of cv-qualifiers in reference-to-reference collapse
543 11.6 Value initialization and default constructors
551 17.8.2 When is inline permitted in an explicit instantiation?
557 6.4.2 Does argument-dependent lookup cause template instantiation?
558 5.3 Excluded characters in universal character names
559 17.7 Editing error in issue 382 resolution
568 12 Definition of POD is too strict
582 17.6.2 Template conversion functions
592 18.2 Exceptions during construction of local static objects
594 6.8 Coordinating issues 119 and 404 with delegating constructors
603 17.5 Type equivalence and unsigned overflow
606 17.9.2.1 Template argument deduction for rvalue references
613 12.2 Unevaluated uses of non-static class members
614 8.6 Results of integer / and %
620 12.2 Declaration order in layout-compatible POD structs
624 8.3.4 Overflow in calculating size of allocation
629 10.1.7.4 auto parsing ambiguity
632 11.6.1 Brace-enclosed initializer for scalar member of aggregate
634 8.2.2 Conditionally-supported behavior for non-POD objects passed to ellipsis redux
637 4.6 Sequencing rules and example disagree
639 4.6 What makes side effects “different” from one another?
644 6.9 Should a trivial class type be a literal type?
647 10.1.5 Non-constexpr instances of constexpr constructor templates
648 10.1.5 Constant expressions in constexpr initializers
649 6.11 Optionally ill-formed extended alignment requests
651 10.1.7.2 Problems in decltype specification and examples
654 7.11 Conversions to and from nullptr_t
659 8.3.6 Alignment of function types
660 10.2 Unnamed scoped enumerations
661 8.9 Semantics of arithmetic comparisons
663 _N2691_.E Valid Cyrillic identifier characters
666 17.7 Dependent qualified-ids without the typename keyword
671 8.2.9 Explicit conversion from a scoped enumeration type to integral type
677 15.4 Deleted operator delete and virtual destructors
679 17.5 Equivalence of template-ids and operator function templates
681 11.3.5 Restrictions on declarators with late-specified return types
683 15.8 Requirements for trivial subobject special functions
684 8.20 Constant expressions involving the address of an automatic variable
686 11.1 Type declarations/definitions in type-specifier-seqs and type-ids
688 6.6.2 Constexpr constructors and static initialization


Issues with "CD2" Status:

Issue Section Title
257 15.6.2 Abstract base constructors and virtual base initialization
374 11.3 Can explicit specialization outside namespace use qualified name?
408 17.6.1.3 sizeof applied to unknown-bound array static data member of template
438 8 Possible flaw in wording for multiple accesses to object between sequence points
481 6.3 Scope of template parameters
490 6.4.1 Name lookup in friend declarations
493 17.9.2.3 Type deduction from a bool context
495 16.3.3 Overload resolution with template and non-template conversion functions
499 18.1 Throwing an array of unknown size
527 6.5 Problems with linkage of types
541 17.7.2.2 Dependent function types
542 15.6 Value initialization of arrays of POD-structs
556 8.18 Conflicting requirements for acceptable aliasing
561 17.7.4.2 Internal linkage functions in dependent name lookup
564 10.5 Agreement of language linkage or linkage-specifications?
569 10 Spurious semicolons at namespace scope should be allowed
570 6.2 Are references subject to the ODR?
571 6.5 References declared const
576 10.1.3 Typedefs in function definitions
587 8.16 Lvalue operands of a conditional expression differing only in cv-qualification
588 17.7.2 Searching dependent bases of classes local to function templates
589 11.6.3 Direct binding of class and array rvalues in reference initialization
598 6.4.2 Associated namespaces of overloaded functions and function templates
599 8.3.5 Deleting a null function pointer
601 19.1 Type of literals in preprocessing expressions
604 16.3.1.3 Argument list for overload resolution in copy-initialization
608 13.3 Determining the final overrider of a virtual function
611 11.6 Zero-initializing references
612 4.6 Requirements on a conforming implementation
618 19.1 Casts in preprocessor conditional expressions
625 10.1.7.4 Use of auto as a template-argument
626 19.3.2 Preprocessor string literals
628 10.2 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 Specifications for variables that should also apply to references
638 17.6.4 Explicit specialization and friendship
641 16.3.2 Overload resolution and conversion-to-same-type operators
642 6.3.3 Definition and use of “block scope” and “local scope”
645 12.2 Are bit-field and non-bit-field members layout compatible?
650 15.2 Order of destruction for temporaries bound to the returned value of a function
652 8.20 Compile-time evaluation of floating-point expressions
653 15.8 Copy assignment of unions
656 11.6.3 Direct binding to the result of a conversion operator
657 17.9.2 Abstract class parameter in synthesized declaration
658 8.2.10 Defining reinterpret_cast for pointer types
664 11.6.3 Direct binding of references to non-class rvalue references
665 8.2.7 Problems in the specification of dynamic_cast
667 15.8 Trivial special member functions that cannot be implicitly defined
668 18.5.1 Throwing an exception from the destructor of a local static object
672 8.3.4 Sequencing of initialization in new-expressions
680 15.8 What is a move constructor?
685 7.6 Integral promotion of enumeration ignores fixed underlying type
690 3 The dynamic type of an rvalue reference
693 7.2 New string types and deprecated conversion
695 8 Compile-time calculation errors in constexpr functions
699 10.1.5 Must constexpr member functions be defined in the class member-specification?
701 11.3.4 When is the array-to-pointer conversion applied?
702 16.3.3.2 Preferring conversion to std::initializer_list
703 11.6.4 Narrowing for literals that cannot be exactly represented
704 16.3.1.1 To which postfix-expressions does overload resolution apply?
705 6.4.2 Suppressing argument-dependent lookup via parentheses
707 7.10 Undefined behavior in integral-to-floating conversions
710 15.7 Data races during construction
711 10.1.7.4 auto with braced-init-list
713 11.3.5 Unclear note about cv-qualified function types
714 12.2.3.2 Static const data members and braced-init-lists
715 8.20 Class member access constant expressions
716 12.3 Specifications that should apply only to non-static union data members
717 10.1.1 Unintentional restrictions on the use of thread_local
719 6 Specifications for operator-function-id that should also apply to literal-operator-id
720 8.1.5 Need examples of lambda-expressions
721 8.20 Where must a variable be initialized to be used in a constant expression?
722 8.2.2 Can nullptr be passed to an ellipsis?
726 4.7 Atomic and non-atomic objects in the memory model
730 17.8.3 Explicit specializations of members of non-template classes
731 8.2.5 Omitted reference qualification of member function type
732 11.4 Late-specified return types in function definitions
734 8.2.10 Are unique addresses required for namespace-scope variables?
735 6.7.4.3 Missing case in specification of safely-derived pointers
737 11.6.2 Uninitialized trailing characters in string initialization
740 4.7 Incorrect note on data races
743 _N4567_.5.1.1 Use of decltype in a nested-name-specifier
744 17.3.3 Matching template arguments with template template parameters with parameter packs
746 10.1.7.4 Use of auto in new-expressions
749 16.6 References to function types with a cv-qualifier or ref-qualifier
750 8.1.5 Implementation constraints on reference-only closure objects
751 8.1.5 Deriving from closure classes
752 8.1.5 Name lookup in nested lambda-expressions
753 8.1.5 Array names in lambda capture sets
754 8.1.5 Lambda expressions in default arguments of block-scope function declarations
756 8.1.5 Dropping cv-qualification on members of closure objects
757 6.5 Types without linkage in declarations
759 8.1.5 Destruction of closure objects
760 _N4567_.5.1.1 this inside a nested class of a non-static member function
761 8.1.5 Inferred return type of closure object call operator
762 8.1.5 Name lookup in the compound-statement of a lambda expression
763 8.1.5 Is a closure object's operator() inline?
764 8.1.5 Capturing unused variables in a lambda expression
765 10.1.2 Local types in inline functions with external linkage
766 8.1.5 Where may lambda expressions appear?
767 8.1.5 void and other unnamed lambda-parameters
768 8.1.5 Ellipsis in a lambda parameter list
769 8.1.5 Initialization of closure objects
770 11 Ambiguity in late-specified return type
771 8.1.5 Move-construction of reference members of closure objects
772 8.1.5 capture-default in lambdas in local default arguments
774 8.1.5 Can a closure class be a POD?
775 8.1.5 Capturing references to functions
776 6.6.3 Delegating constructors, destructors, and std::exit
777 11.3.6 Default arguments and parameter packs
779 8.1.5 Rvalue reference members of closure objects?
782 8.1.5 Lambda expressions and argument-dependent lookup
785 4.6 “Execution sequence” is inappropriate phraseology
786 4.7 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.6.1 Effects of std::quick_exit
793 6.8 Use of class members during destruction
796 8.1.5 Lifetime of a closure object with members captured by reference
797 8.1.5 Converting a no-capture lambda to a function type
799 8.2.10 Can reinterpret_cast be used to cast an operand to its own type?
801 8.2.11 Casting away constness in a cast to rvalue reference type
803 8.3.3 sizeof an enumeration type with a fixed underlying type
804 8.3.4 Deducing the type in new auto(x)
805 8.3.4 Which exception to throw for overflow in array size calculation
806 8.20 Enumeration types in integral constant expressions
808 10.1 Non-type decl-specifiers versus max-munch
809 10.1.1 Deprecation of the register keyword
810 10.1.1 Block-scope thread_local variables should be implicitly static
811 10.1.7.1 Unclear implications of const-qualification
812 10.3.1 Duplicate names in inline namespaces
814 10.6 Attribute to indicate that a function throws nothing
815 10.6.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 11.3.5 Function parameter packs in non-final positions
820 17 Deprecation of export
823 17.3.2 Literal types with constexpr conversions as non-type template arguments
828 18.1 Destruction of exception objects
830 18.4 Deprecating exception specifications
831 B Limit on recursively nested template instantiations
832 5.9 Value of preprocessing numbers
833 8.2.9 Explicit conversion of a scoped enumeration value to a floating type
834 5.13.5 What is an “ordinary string literal”?
835 8 Scoped enumerations and the “usual arithmetic conversions”
840 17.1 Rvalue references as nontype template parameters
842 8.2.10 Casting to rvalue reference type
845 11.4 What is the “first declaration” of an explicit specialization?
846 6.10 Rvalue references to functions
847 17.9.2.1 Error in rvalue reference deduction example
850 _N4567_.5.1.1 Restrictions on use of non-static data members
853 6.7.4.3 Support for relaxed pointer safety
854 8.8 Left shift and unsigned extended types
855 8.18 Incorrect comments in braced-init-list assignment example
858 8 Example binding an rvalue reference to an lvalue
861 6.4.3.2 Unintended ambiguity in inline namespace lookup
862 10.2 Undefined behavior with enumerator value overflow
863 8.2 Rvalue reference cast to incomplete type
865 11.6.4 Initializing a std::initializer_list
869 11.6 Uninitialized thread_local objects
872 5.13.5 Lexical issues with raw strings
874 12.2 Class-scope definitions of enumeration types
876 17.9.2.1 Type references in rvalue reference deduction specification
877 16.3.2 Viable functions and binding references to rvalues
879 16.6 Missing built-in comparison operators for pointer types
880 16.6 Built-in conditional operator for scoped enumerations
882 6.6.1 Defining main as deleted
883 6.9 std::memcpy vs std::memmove
884 17.8.3 Defining an explicitly-specialized static data member
886 11.6.1 Member initializers and aggregates
887 15.8 Move construction of thrown object
888 15.6.2 Union member initializers
891 8.2.11 const_cast to rvalue reference from objectless rvalue
896 11.6.3 Rvalue references and rvalue-reference conversion functions
899 16.3.1.4 Explicit conversion functions in direct class initialization
904 8.1.5 Parameter packs in lambda-captures
905 12 Explicit defaulted copy constructors and trivial copyability
906 11.4 Which special member functions can be defaulted?
908 11.4 Deleted global allocation and deallocation functions
910 15.8 Move constructors and implicitly-declared copy constructors
913 17.9.2.3 Deduction rules for array- and function-type conversion functions
915 11.4 Deleted specializations of member function templates
919 10.3.1 Contradictions regarding inline namespaces
920 11.3 Interaction of inline namespaces and using-declarations
921 10.3.1 Unclear specification of inline namespaces
922 15.1 Implicit default constructor definitions and const variant members
923 17.8.3 Inline explicit specializations
926 10.3.1.1 Inline unnamed namespaces
927 15.1 Implicitly-deleted default constructors and member initializers
928 11.4 Defaulting a function that would be implicitly defined as deleted
929 17.6.7 What is a template alias?
930 8.3.6 alignof with incomplete array type
931 5.13.8 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 11.6.4 List-initialization of references
935 16.5.8 Missing overloads for character types for user-defined literals
936 11.6.2 Array initialization with new string literals
939 13.3 Explicitly checking virtual function overriding
940 10.1.1 Global anonymous unions
942 6 Is this an entity?
946 6.6.3 Order of destruction of local static objects and calls to std::atexit
950 10.1.7.2 Use of decltype as a class-name
951 10.6 Problems with attribute-specifiers
953 16.3.3.1.4 Rvalue references and function viability
955 8.1.5 Can a closure type's operator() be virtual?
956 11.3.5 Function prototype scope with late-specified return types
957 10.6.1 Alternative tokens and attribute-tokens
959 10.6.2 Alignment attribute for class and enumeration types
960 13.3 Covariant functions and lvalue/rvalue references
961 16.3.3.2 Overload resolution and conversion of std::nullptr_t to bool
962 10.1.7.3 Attributes appertaining to class and enum types
963 8.9 Comparing nullptr with 0
965 10.6.3 Limiting the applicability of the carries_dependency attribute
966 6.5 Nested types without linkage
968 10.6.1 Syntactic ambiguity of the attribute notation
969 17.8.2 Explicit instantiation declarations of class template specializations
970 10.6 Consistent use of “appertain” and “apply”
973 18.4 Function types in exception-specifications
976 17.9.2.3 Deduction for const T& conversion operators
978 16.3.3.1 Incorrect specification for copy initialization
979 11 Position of attribute-specifier in declarator syntax
980 17.8.2 Explicit instantiation of a member of a class template
983 8.3.1 Ambiguous pointer-to-member constant
984 10.1.7.4 “Deduced type” is unclear in auto type deduction
986 10.3.4 Transitivity of using-directives versus qualified lookup
988 10.1.7.2 Reference-to-reference collapsing with decltype
989 11.6.4 Misplaced list-initialization example
990 11.6.4 Value initialization with multiple initializer-list constructors
991 10.1.5 Reference parameters of constexpr functions and constructors
995 17.8.2 Incorrect example for using-declaration and explicit instantiation
999 16.3 “Implicit” or “implied” object argument/parameter?
1000 6.4.3.1 Mistaking member typedefs for constructors
1010 8.20 Address of object with dynamic storage duration in constant expression


Issues with "C++11" Status:

Issue Section Title
96 17.2 Syntactic disambiguation using the template keyword
248 _N2691_.E Identifier characters
341 10.5 extern "C" namespace member function versus global variable
355 12 Global-scope :: in nested-name-specifier
373 6.4.6 Lookup on namespace qualified name in using-directive
407 10.1.3 Named class with associated typedef: two names or one?
431 17.2 Defect in wording in 14.2
448 17.7.1 Set of template functions in call with dependent explicit argument
458 17.7.1 Hiding of member template parameters by other members
475 18.5.2 When is std::uncaught_exception() true? (take 2)
502 17.7.2.1 Dependency of nested enumerations and enumerators
508 11.6 Non-constructed value-initialized objects
531 17.8.3 Defining members of explicit specializations
532 17.6.6.2 Member/nonmember operator template partial ordering
546 17.8.2 Explicit instantiation of class template members
547 11.3.5 Partial specialization on member function types
572 7 Standard conversions for non-built-in types
573 8.2.10 Conversions between function pointers and void*
575 17.9.2 Criteria for deduction failure
580 14 Access in template-parameters of member and friend definitions
590 17.7.2.1 Nested classes and the “current instantiation”
602 17.7.1 When is the injected-class-name of a class template a template?
605 17.8.3 Linkage of explicit specializations
615 11.6 Incorrect description of variables that can be initialized
619 6.9 Completeness of array types
621 17.8.3 Template argument deduction from function return types
655 15.6.2 Initialization not specified for forwarding constructors
674 17.6.4 “matching specialization” for a friend declaration
676 6.1 static_assert-declarations and general requirements for declarations
678 6.2 Language linkage of member function parameter types and the ODR
691 17.1 Template parameter packs in class template partial specializations
692 17.9.2.5 Partial ordering of variadic class template partial specializations
694 11.6 Zero- and value-initialization of union objects
696 12.4 Use of block-scope constants in local classes
700 10.1.5 Constexpr member functions of class templates
709 17.9.2 Enumeration names as nested-name-specifiers in deduction failure
738 15.1 constexpr not permitted by the syntax of constructor declarations
741 12.2.4 “plain” long long bit-fields
758 6.1 Missing cases of declarations that are not definitions
773 17.3.2 Parentheses in address non-type template arguments
778 17.1 Template parameter packs in non-type template parameters
784 4.2 List of incompatibilities with the previous Standard
798 8.2.1 Overloaded subscript operator described in clause 5
837 10.1.5 Constexpr functions and return braced-init-list
838 15.6.2 Use of this in a brace-or-equal-initializer
860 10.1.5 Explicit qualification of constexpr member functions
864 9.5.4 braced-init-list in the range-based for statement
873 17.9.2.5 Deducing rvalue references in declarative contexts
892 10.1.5 Missing requirements for constexpr constructors
898 10.1.5 Declarations in constexpr functions
924 12.2 alias-declaration as a class member
938 11.6.1 Initializer lists and array new
941 17.8.3 Explicit specialization of deleted function template
945 _N4567_.5.1.1 Use of this in a late-specified return type
948 9.4 constexpr in conditions
964 6.10 Incorrect description of when the lvalue-to-rvalue conversion applies
971 18.3 Incorrect treatment of exception-declarations
972 10.6.1 Allowing multiple attribute-specifiers
981 6.9 Constexpr constructor templates and literal types
985 5.5 Alternative tokens and user-defined literals
993 17.7.4.1 Freedom to perform instantiation at the end of the translation unit
994 11.3.5 braced-init-list as a default argument
996 17.6.5 Ambiguous partial specializations of member class templates
997 6.4.2 Argument-dependent lookup and dependent function template parameter types
1004 17.7.1 Injected-class-names as arguments for template template parameters
1006 17.1 std::nullptr_t as a non-type template parameter
1009 17 Missing cases in the declarator-id of a function template declaration
1011 8.2.9 Standard conversions that cannot be inverted
1012 10.3.1.1 Undeprecating static
1015 6.4.2 Template arguments and argument-dependent lookup
1016 16 Overloadable declarations, function templates, and references
1017 12.2.2 Member access transformation in unevaluated operands
1018 10 Ambiguity between simple-declaration and attribute-declaration
1020 15.8 Implicitly-defined copy constructors and explicit base class constructors
1022 10.2 Can an enumeration variable have values outside the values of the enumeration?
1025 17.3.2 Use of a reference as a non-type template argument
1029 15.4 Type of a destructor call
1030 11.6.1 Evaluation order in initializer-lists used in aggregate initialization
1031 10.6.1 Optional elements in attributes
1032 17.6.3 Empty pack expansions
1033 10.6.2 Restrictions on alignment attributes
1034 8.1.5 Attributes for return statements in lambdas
1035 12.2 Omitted and required decl-specifiers
1036 10.6.2 Alignment attribute in an exception-declaration
1037 8.3.5 Requirements for operands of delete-expressions and deallocation functions
1042 10 Attributes in alias-declarations
1043 17.7.2.1 Qualified name lookup in the current instantiation
1044 6.3.2 Point of declaration for an alias-declaration
1047 17.7.2.3 When is typeid value-dependent?
1051 15.8 Reference members and generated copy constructors
1054 9.2 Lvalue-to-rvalue conversions in expression statements
1055 6.9.1 Permissible uses of void
1056 17.6.7 Template aliases, member definitions, and the current instantiation
1057 17.7.2.1 decltype and the current instantiation
1060 8.20 Scoped enumerators in integral constant expressions
1061 8.3.4 Negative array bounds in a new-expression
1062 8.1.5 Syntax of attribute-specifiers in lambdas
1063 _N3225_.7.6.5 [[hiding]] with non-attribute declarations
1064 15.8 Defaulted move constructor for a union
1065 _N3225_.7.6.5 [[hiding]] with [[override]]
1066 15.8 When is a copy/move assignment operator implicitly defined?
1068 17.1 Template aliases with default arguments and template parameter packs
1069 11.3.5 Incorrect function type with trailing-return-type
1070 11.6.1 Missing initializer clauses in aggregate initialization
1071 6.9 Literal class types and trivial default constructors
1072 12.2 Scoped enumerator with the same name as its containing class
1073 18.4 Merging dynamic-exception-specifications and noexcept-specifications
1074 17.7.2.3 Value-dependent noexcept-expressions
1075 10.1.7.2 Grammar does not allow template alias in type-name
1079 16.3.3.2 Overload resolution involving aggregate initialization
1080 15.8 Confusing relationship between templates and copy constructors
1081 15.4 Defaulted destructor and unusable operator delete
1082 15.8 Implicit copy function if subobject has none?
1083 8.2.2 Passing an object to ellipsis with non-trivial move constructor
1086 8.2.11 const_cast to rvalue reference to function type
1087 16.3.1.4 Additional applications of issue 899
1088 17.7.2.3 Dependent non-type template arguments
1090 6.11 Alignment of subobjects
1091 8.5 Inconsistent use of the term “object expression”
1094 8.2.9 Converting floating-point values to scoped enumeration types
1095 11.6.4 List-initialization of references
1096 17 Missing requirement for template definitions
1098 8.20 Pointer conversions in constant expressions
1099 8.20 Infinite recursion in constexpr functions
1100 8.20 constexpr conversion functions and non-type template arguments
1101 12.2.3.2 Non-integral initialized static data members
1102 4.6 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.7 Need more detail in nullptr keyword description
1107 5.13.8 Overload resolution for user-defined integer literals
1109 6.2 When is “use” a reference to the ODR meaning?
1111 6.4.5 Remove dual-scope lookup of member template names
1112 6.5 constexpr variables should have internal linkage like const
1113 6.5 Linkage of namespace member of unnamed namespace
1114 6.8 Incorrect use of placement new in example
1115 6.11 C-compatible alignment specification
1117 8 Incorrect note about xvalue member access expressions
1119 8.2.5 Missing case in description of member access ambiguity
1120 8.2.10 reinterpret_cast and void*
1121 8.3.1 Unnecessary ambiguity error in formation of pointer to member
1122 8.3.3 Circular definition of std::size_t
1123 8.3.7 Destructors should be noexcept by default
1125 8.20 Unclear definition of “potential constant expression”
1126 8.20 constexpr functions in const initializers
1127 8.20 Overload resolution in constexpr functions
1128 10.1 attribute-specifiers in decl-specifier-seqs
1129 10.1.5 Default nothrow for constexpr functions
1130 10.1.7.2 Function parameter type adjustments and decltype
1131 10.1.7.3 Template aliases in elaborated-type-specifiers
1133 _N3225_.7.6.5 Keywords vs attributes for control of hiding and overriding
1134 11.4.2 When is an explicitly-defaulted function defined?
1135 11.4.2 Explicitly-defaulted non-public special member functions
1136 11.4.2 Explicitly-defaulted explicit constructors
1137 11.4.2 Explicitly-defaulted virtual special member functions
1138 11.6.3 Rvalue-ness check for rvalue reference binding is wrong
1139 11.6.3 Rvalue reference binding to scalar xvalues
1140 12 Incorrect redefinition of POD class
1142 12.2.1 friend declaration of member function of containing class
1144 _N3225_.11.3 Remove access declarations
1145 15.1 Defaulting and triviality
1146 15.4 exception-specifications of defaulted functions
1147 15.4 Destructors should be default nothrow
1148 15.8 Copy elision and move construction of function parameters
1149 15.8 Trivial non-public copy operators in subobjects
1151 16.3.1.7 Overload resolution with initializer-list and non-list constructors
1152 16.3.2 Rules for determining existence of implicit conversion sequence
1153 16.4 Type matching in address of overloaded function
1154 17.3.2 Address of thread_local variable as non-type template argument
1155 17.3.2 Internal-linkage non-type template arguments
1156 17.6.6.2 Partial ordering in a non-call context
1158 17.6.7 Recursive instantiation via alias template
1159 17.6.7 Class and enumeration definitions in template aliases
1160 17.7.2.1 Definitions of template members and the current instantiation
1161 17.7 Dependent nested-name-specifier in a pointer-to-member declarator
1164 17.9.2.1 Partial ordering of f(T&) and f(T&&)
1165 18.2 Exceptions when destroying array elements
1166 18.3 exception-declarations that do not declare objects
1167 18.4 function-try-blocks for destructors
1168 18.5.1 Additional reasons to call std::terminate
1169 19.8 Missing feature macro for strict pointer safety
1170 17.9.2 Access checking during template argument deduction
1171 18.5.1 Partial stack unwinding with noexcept violation
1173 4.6 Unclear specification of effects of signal handling
1174 6.2 When is a pure virtual function “used?”
1175 5.13.8 Disambiguating user-defined literals
1176 4.7 Definition of release sequence
1177 4.7 Intra-thread dependency-ordered-before
1178 17.9.2.6 Deduction failure matching placement new
1180 6.11 Over-aligned class types
1181 6.9 What is a “built-in type?”
1182 17.6.3 Incorrect description of pack expansion syntax
1183 11.3.5 Expansion of parameter packs in declarators
1184 17.9.2.1 Argument conversions to nondeduced parameter types
1185 10.5 Misleading description of language linkage and member function types
1186 10.1.5 Non-dependent constexpr violations in function templates
1187 6.6.2 Problems in initialization example
1188 8.20 Type punning in constant expressions
1189 4.5 Address of distinct base class subobjects
1190 6.7.4.3 Operations on non-safely-derived pointers
1191 15.1 Deleted subobject destructors and implicitly-defined constructors
1192 6.2 Inadvertent change to ODR and templates
1193 8.20 Use of address-constant pointers in constant expressions
1194 10.1.5 Constexpr references
1195 10.1.5 References to non-literal types in constexpr functions
1196 17.8.2 Definition required for explicit instantiation after explicit specialization?
1197 8.20 Constexpr arrays
1198 6.9 Literal types and copy constructors
1199 10.1.5 Deleted constexpr functions
1201 6.1 Are deleted and defaulted functions definitions?
1202 15.7 Calling virtual functions during destruction
1204 9.5 Specifiers in a for-range-declaration
1206 17.6.1 Defining opaque enumeration members of class templates
1207 12.2.2 Type of class member in trailing-return-type
1208 12.2.2 Explicit noexcept in defaulted definition
1210 6.3.2 Injection of elaborated-type-specifier in enumeration scope
1212 10.1.7.2 Non-function-call xvalues and decltype
1214 11.6 Kinds of initializers
1215 12 Definition of POD struct
1216 18.4 Exceptions “allowed” by a noexcept-specification
1218 18.3 What is the “currently-handled exception” in a multi-threaded program?
1219 6.9 Non-static data member initializers in constant expressions
1220 6.4.5 Looking up conversion-type-ids
1224 15.8 constexpr defaulted copy constructors
1225 10.1.5 constexpr constructors and virtual bases
1229 16.3.1.7 Overload resolution with empty braced-init-list argument
1231 17.6.3 Variadic templates requiring an empty pack expansion
1232 11.6.4 Creation of array temporaries using a braced-init-list
1233 17.7.2 Pack expansions and dependent calls
1234 11.1 abstract-declarator does not permit ... after ptr-operator
1235 17.6.6.2 “Unused” ellipsis and default arguments in partial ordering
1236 11.6.3 Inconsistently-interrelated examples
1237 15.2 Deprecated implicit copy assignment in example
1238 16.3.3.2 Overloading ambiguity binding reference to function
1239 5.13.8 Hexadecimal floating-point literals vs user-defined literals
1240 11.1 constexpr defaulted constructors
1241 15.4 Which members does a destructor destroy?
1242 15.6.2 Initializing variant class members
1243 11 Misleading footnote regarding multiple-declarator declarations
1244 17.5 Equivalence of alias templates and class templates
1245 17.6.1.1 Matching declarations involving decltype
1246 17.1 Non-deduced non-final parameter packs


Issues with "CD3" Status:

Issue Section Title
129 4.6 Stability of uninitialized auto variables
223 D The meaning of deprecation
240 7.1 Uninitialized values and undefined behavior
292 8.3.4 Deallocation on exception in new before arguments evaluated
312 6.7.4.2 “use” of invalid pointer value not defined
332 11.3.5 cv-qualified void parameter types
342 8.3 Terminology: "indirection" versus "dereference"
344 15.4 Naming destructors
388 18.3 Catching base*& from a throw of derived*
462 15.2 Lifetime of temporaries bound to comma expressions
482 11.3 Qualified declarators in redeclarations
483 6.9.1 Normative requirements on integral ranges
496 6.9 Is a volatile-qualified type really a POD?
535 15.8 Copy construction without a copy constructor
539 10.1.7 Constraints on type-specifier-seq
565 10.3.3 Conflict rules for using-declarations naming function templates
577 11.3.5 void in an empty parameter list
583 8.9 Relational pointer comparisons against the null pointer constant
597 6.8 Conversions applied to out-of-lifetime non-POD lvalues
616 3 Definition of “indeterminate value”
623 6.7.4.2 Use of pointers to deallocated storage
631 9.4.1 Jumping into a “then” clause
675 12.2.4 Signedness of bit-field with typedef or template parameter type
712 6.2 Are integer constant operands of a conditional-expression “used?”
729 18.3 Qualification conversions and handlers of reference-to-pointer type
739 12.2.4 Signedness of plain bit-fields
755 8.1.5 Generalized lambda-captures
903 17.7.2.3 Value-dependent integral null pointer constants
912 5.13.3 Character literals and universal-character-names
974 8.1.5 Default arguments for lambdas
975 8.1.5 Restrictions on return type deduction for lambdas
977 10.2 When is an enumeration type complete?
1003 6.6.1 Acceptable definitions of main
1013 7.1 Uninitialized std::nullptr_t objects
1024 5.13.3 Limits on multicharacter literals
1048 8.1.5 auto deduction and lambda return type deduction.
1059 6.9.3 Cv-qualified array types (with rvalues)
1093 11.6 Value-initializing non-objects
1213 8.2.1 Array subscripting and xvalues
1226 11.3.6 Converting a braced-init-list default argument
1227 17.9.2 Mixing immediate and non-immediate contexts in deduction failure
1250 13.3 Cv-qualification of incomplete virtual function return types
1251 C.1.3 C compatibility: casting to unqualified void*
1260 6.2 Incorrect use of term “overloaded” in description of odr-use
1261 8 Explicit handling of cv-qualification with non-class prvalues
1262 17.9.2 Default template arguments and deduction failure
1264 8.20 Use of this in constexpr constructor
1265 10.1.7.4 Mixed use of the auto specifier
1267 18.4 Rvalue reference types in exception-specifications
1268 8.2.10 reinterpret_cast of an xvalue operand
1269 8.2.7 dynamic_cast of an xvalue operand
1270 11.6.4 Brace elision in array temporary initialization
1275 17.1 Incorrect comment in example of template parameter pack restriction
1282 18.4 Underspecified destructor exception-specification
1288 11.6.4 Reference list initialization
1290 11.6.4 Lifetime of the underlying array of an initializer_list member
1293 8.20 String literals in constant expressions
1295 11.6.3 Binding a reference to an rvalue bit-field
1296 17.7 Ill-formed template declarations (not just definitions)
1297 11 Misplaced function attribute-specifier
1298 16.3.3.2 Incorrect example in overload resolution
1301 11.6 Value initialization of union
1302 6.9.1 noexcept applied to expression of type void
1305 8.3.6 alignof applied to array of unknown size
1306 12.2.2.1 Modifying an object within a const member function
1308 12.2 Completeness of class type within an exception-specification
1310 6.4.3.1 What is an “acceptable lookup result?”
1311 8.20 Volatile lvalues in constant expressions
1312 8.20 Simulated reinterpret_cast in constant expressions
1313 8.20 Undefined pointer arithmetic in constant expressions
1318 12 Syntactic ambiguities with final
1320 8.2.9 Converting scoped enumerations to bool
1321 17.6.6.1 Equivalency of dependent calls
1324 11.6 Value initialization and defaulted constructors
1327 11.4.2 virt-specifier in a defaulted definition
1328 11.6.3 Conflict in reference binding vs overload resolution
1329 B Recursive deduction substitutions
1330 17.9.2 Delayed instantiation of noexcept specifiers
1333 11.4.2 Omission of const in a defaulted copy constructor
1336 15.3.1 Definition of “converting constructor”
1340 8.5 Complete type in member pointer expressions
1345 15.6.2 Initialization of anonymous union class members
1346 10.1.7.4 expression-list initializers and the auto specifier
1347 10.1.7.4 Consistency of auto in multiple-declarator declarations
1350 _N4527_.12.9 Incorrect exception specification for inherited constructors
1352 6.3.7 Inconsistent class scope and completeness rules
1354 8.3.7 Destructor exceptions for temporaries in noexcept expressions
1355 11.4.2 Aggregates and “user-provided” constructors
1357 12.2 brace-or-equal-initializers for function and typedef members
1358 10.1.5 Unintentionally ill-formed constexpr function template instances
1359 10.1.5 constexpr union constructors
1361 6.9 Requirement on brace-or-equal-initializers of literal types
1362 6.2 Complete type required for implicit conversion to T&
1363 12 Triviality vs multiple default constructors
1364 8.20 constexpr function parameters
1365 8.20 Calling undefined constexpr functions
1366 10.1.5 Deleted constexpr constructors and virtual base classes
1367 8.20 Use of this in a constant expression
1368 11.6 Value initialization and defaulted constructors (part 2)
1369 10.1.5 Function invocation substitution of this
1370 19.3 identifier-list cannot contain ellipsis
1372 17.9.2.3 Cross-references incorrect in conversion function template argument deduction
1374 16.3.3.2 Qualification conversion vs difference in reference binding
1375 12.3 Reference to anonymous union?
1380 11.3.5 Type definitions in template-parameter parameter-declarations
1381 18.4 Implicitly-declared special member functions and default nothrow
1382 11 Dead code for constructor names
1383 8 Clarifying discarded-value expressions
1385 16.3.1.2 Syntactic forms of conversion functions for surrogate call functions
1387 17.9.2.5 Missing non-deduced context for decltype
1388 17.9.2.1 Missing non-deduced context following a function parameter pack
1392 16.3.1.6 Explicit conversion functions for references and non-references
1394 11.3.5 Incomplete types as parameters of deleted functions
1398 17.3.2 Non-type template parameters of type std::nullptr_t
1399 17.9.2.1 Deduction with multiple function parameter packs
1401 11.6.3 Similar types and reference compatibility
1402 15.8 Move functions too often deleted
1405 6.9 constexpr and mutable members of literal types
1406 17.6.6.2 ref-qualifiers and added parameters of non-static member function templates
1408 16.3.3.2 What is “the same aggregate initialization?”
1409 16.3.3.1.5 What is the second standard conversion sequence of a list-initialization sequence?
1410 16.3.3.2 Reference overload tiebreakers should apply to rvalue references
1411 12 More on global scope :: in nested-name-specifier
1412 8.2.9 Problems in specifying pointer conversions
1413 17.7.2.3 Missing cases of value-dependency
1415 6.5 Missing prohibition of block-scope definition of extern object
1416 8.2.8 Function cv-qualifiers and typeid
1418 11.6.4 Type of initializer_list backing array
1423 7.13 Convertibility of nullptr to bool
1425 12.2 Base-class subobjects of standard-layout structs
1428 6.9.3 Dynamic const objects
1431 18 Exceptions from other than throw-expressions
1435 11.3 template-id as the declarator for a class template constructor
1437 10.1.3 alignas in alias-declaration
1438 6.7.4.3 Non-dereference use of invalid pointers
1439 10.3.1.2 Lookup and friend template declarations
1440 _N4567_.5.1.1 Acceptable decltype-specifiers used as nested-name-specifiers
1442 9.5.4 Argument-dependent lookup in the range-based for
1447 8.2.9 static_cast of bit-field lvalue to rvalue reference
1449 11.6.4 Narrowing conversion of negative value to unsigned type
1450 8.6 INT_MIN % -1
1453 6.9 Volatile members in literal classes?
1454 8.20 Passing constants through constexpr functions via references
1455 8.20 Lvalue converted constant expressions
1456 8.20 Address constant expression designating the one-past-the-end address
1457 8.8 Undefined behavior in left-shift
1458 8.3.1 Address of incomplete type vs operator&()
1462 17.9.2 Deduction failure vs “ill-formed, no diagnostic required”
1464 8.3.4 Negative array bound in a new-expression
1471 17.7.2.1 Nested type of non-dependent base
1472 6.2 odr-use of reference variables
1473 16.5.8 Syntax of literal-operator-id
1475 10.6.3 Errors in [[carries_dependency]] example
1476 3 Definition of user-defined type
1477 10.3.1.2 Definition of a friend outside its namespace
1479 16.5.8 Literal operators and default arguments
1480 8.20 Constant initialization via non-constant temporary
1481 16.5.7 Increment/decrement operators with reference parameters
1482 6.3.2 Point of declaration of enumeration
1487 _N4527_.12.9 When are inheriting constructors declared?
1489 6.6.2 Is value-initialization of an array constant initialization?
1491 15.8 Move construction and rvalue reference members
1494 11.6.4 Temporary initialization for reference binding in list-initialization
1495 17.6.5 Partial specialization of variadic class template
1502 11.6 Value initialization of unions with member initializers
1503 18.1 Exceptions during copy to exception object
1504 8.7 Pointer arithmetic after derived-base conversion
1506 11.6.4 Value category of initializer_list object
1507 11.6 Value initialization with trivial inaccessible default constructor
1510 11.3.2 cv-qualified references via decltype
1511 6.2 const volatile variables and the one-definition rule
1512 8.9 Pointer comparison vs qualification conversions
1515 6.9.1 Modulo 2n arithmetic for implicitly-unsigned types
1516 8.2.2 Definition of “virtual function call”
1522 11.6.4 Access checking for initializer_list array initialization
1527 8.18 Assignment from braced-init-list
1528 11 Repeated cv-qualifiers in declarators
1531 3 Definition of “access” (verb)
1532 17.8.2 Explicit instantiation and member templates
1533 17.6.3 Function pack expansion for member initialization
1535 8.20 typeid in core constant expressions
1537 8.20 Optional compile-time evaluation of constant expressions
1538 8.18 C-style cast in braced-init-list assignment
1539 6.9.1 Definition of “character type”
1541 9.6.3 cv void return types
1543 16.3.3.1.5 Implicit conversion sequence for empty initializer list
1544 10.1.1 Linkage of member of unnamed namespace
1550 8.16 Parenthesized throw-expression operand of conditional-expression
1553 8.3.3 sizeof and xvalue bit-fields
1556 16.3.1.4 Constructors and explicit conversion functions in direct initialization
1557 8.1.5 Language linkage of converted lambda function pointer
1559 8.3.4 String too long in initializer list of new-expression
1560 8.16 Gratuitous lvalue-to-rvalue conversion in conditional-expression with throw-expression operand
1563 16.4 List-initialization and overloaded function disambiguation
1588 10.1.7.4 Deducing cv-qualified auto
1597 10.1.5 Misleading constexpr example
1605 15.4 Misleading parenthetical comment for explicit destructor call
2035 17.6.5.1 Multi-section example is confusing
2114 C.3.5 Missing description of incompatibility from aggregate NSDMIs
2150 11.6.4 Initializer list array lifetime
2162 8.1.5 Capturing this by reference


Issues with "C++14" Status:

Issue Section Title
1287 11.6.3 Direct initialization vs “implicit” conversion in reference binding
1307 16.3.3.1.5 Overload resolution based on size of array initializer-list
1344 15.8 Adding new special member functions to a class via default arguments
1376 8.2.9 static_cast of temporary to rvalue reference
1417 11.3.5 Pointers/references to functions with cv-qualifiers or ref-qualifier
1424 18.2 When must sub-object destructors be accessible?
1441 4.6 Unclear wording for signal handler restrictions
1460 12.3 What is an empty union?
1466 4.7 Visible sequences of side effects are redundant
1493 15.8 Criteria for move-construction
1508 11.6.4 Template initializer-list constructors
1509 3 Definition of “non-template function”
1514 12.2.4 Ambiguity between enumeration definition and zero-length bit-field
1551 10.3.3 Wording problems in using-declaration specification
1562 15.6.2 Non-static data member initializers and union ctor-initializer
1567 _N4527_.12.9 Inheriting constructors and copy/move constructors
1569 17.9.2.5 Deducing a function parameter pack before ellipsis
1570 17.3.2 Address of subobject as non-type template argument
1575 6.7.4.3 Incorrect definition of “strict pointer safety”
1576 8 Discarded-value volatile xvalues
1579 15.8 Return by converting move constructor
1583 4.6 Incorrect example of unspecified behavior
1587 10.1.5 constexpr initialization and nested anonymous unions
1592 17.3.3 When do template parameters match?
1593 15.8 “Parameter type” of special member functions
1595 10.1.5 Constructors “involved in” subobject initialization
1598 8.10 Criterion for equality of pointers to members
1601 7.6 Promotion of enumeration with fixed underlying type
1604 11.6.3 Double temporaries in reference initialization
1607 8.1.5 Lambdas in template parameters
1608 16.3.1.2 Operator lookup in trailing return type
1611 15.1 Deleted default constructor for abstract class
1612 8.1.5 Implicit lambda capture and anonymous unions
1613 8.1.5 Constant expressions and lambda capture
1618 10.2 Gratuitously-unsigned underlying enum type
1629 8.1.5 Can a closure class be a literal type?
1648 10.1.1 thread_local vs block extern declarations
1649 15.6.2 Error in the syntax of mem-initializer-list
1658 15.1 Deleted default constructor for abstract class via destructor
1660 12.2 member-declaration requirements and unnamed bit-fields
1662 8.1.5 Capturing function parameter packs
1664 8.1.5 Argument-dependent lookup of lambdas used in default arguments
1666 17.3.2 Address constant expressions
1669 6.6.1 auto return type for main
1673 16.3.3.1 Clarifying overload resolution for the second step of copy-initialization
1674 10.1.7.4 Return type deduction for address of function
1681 8.1.5 init-captures and nested lambdas
1684 10.1.5 Static constexpr member functions for non-literal classes
1687 16.3.1.2 Conversions of operands of built-in operators
1689 10.6.1 Syntactic nonterminal for operand of alignas
1690 6.4.2 Associated namespace for local type
1691 6.4.2 Argument-dependent lookup and opaque enumerations
1692 6.4.2 Associated namespaces of doubly-nested classes
1693 12.2 Superfluous semicolons in class definitions
1707 10.1.7.3 template in elaborated-type-specifier without nested-name-specifier
1716 11.3.6 When are default arguments evaluated?
1717 5.13.2 Missing specification of type of binary literal
1732 9.4 Defining types in conditions and range-based for statements
1737 17.7.2.1 Type dependence of call to a member of the current instantiation
1738 _N4527_.12.9 Explicit instantiation/specialization of inheriting constructor templates
1739 8.2.9 Conversion of floating point to enumeration
1740 18.4 Disambiguation of noexcept
1741 6.2 odr-use of class object in lvalue-to-rvalue conversion
1746 6.9 Are volatile scalar types trivially copyable?
1747 6.6.2 Constant initialization of reference to function
1759 5.13.5 UTF-8 code units in plain char
1760 8.1.5 Access of member corresponding to init-capture
1762 16.5.8 Reserved identifier used in literal-operator-id example
1764 13.2 Hiding of function from using-declaration by signature
1765 10.2 Overflow of enumeration used as enumerator value
1767 9.4.2 Scoped enumeration in a switch statement
1769 18.3 Catching a base class of the exception object
1770 17.9.2.5 Type matching of non-type template parameters and arguments
1772 8.1.5 __func__ in a lambda body
1773 7.1 Out-of-lifetime lvalue-to-rvalue conversion
1775 5.2 Undefined behavior of line splice in raw string literal
1778 11.4.2 exception-specification in explicitly-defaulted functions
1786 8.3.4 Effect of merging allocations on memory leakage
1787 7.1 Uninitialized unsigned char values


Issues with "CD4" Status:

Issue Section Title
92 18.4 Should exception-specifications be part of the type system?
212 17.8.1 Implicit instantiation is not described clearly enough
238 8 Precision and accuracy constraints on floating point
242 8.4 Interpretation of old-style casts
330 7.5 Qualification conversions and pointers to arrays of pointers
393 11.3.5 Pointer to array of unknown bound in template argument list in parameter
591 17.7.2 When a dependent base class is the current instantiation
609 10.1.7.1 What is a “top-level” cv-qualifier?
636 6.10 Dynamic type of objects and aliasing
987 10.3 Which declarations introduce namespace members?
1021 10.3.1.2 Definitions of namespace members
1116 6.8 Aliasing of union members
1247 10.1.3 Restriction on alias name appearing in type-id
1274 9.5.4 Common nonterminal for expression and braced-init-list
1284 6.8 Should the lifetime of an array be independent of that of its elements?
1292 17.7.2 Dependent calls with braced-init-lists containing a pack expansion
1309 17.7.2.1 Incorrect note regarding lookup of a member of the current instantiation
1315 17.6.5 Restrictions on non-type template arguments in partial specializations
1338 6.7.4.1 Aliasing and allocation functions
1351 18.4 Problems with implicitly-declared exception-specifications
1356 18.4 Exception specifications of copy assignment operators with virtual bases
1391 17.9.1 Conversions to parameter types with non-deduced template arguments
1397 12.2 Class completeness in non-static data member initializers
1446 17.6.6.2 Member function with no ref-qualifier and non-member function with rvalue reference
1465 8.3.7 noexcept and std::bad_array_new_length
1467 11.6.4 List-initialization of aggregate from same-type object
1484 17.8.1 Unused local classes of function templates
1490 11.6.4 List-initialization from a string literal
1492 15.4 Exception specifications on template destructors
1496 12.1 Triviality with deleted and missing default constructors
1518 11.6.4 Explicit default constructors and copy-list-initialization
1552 11.4.2 exception-specifications and defaulted special member functions
1558 17.6.7 Unused arguments in alias template specializations
1571 11.6.3 cv-qualification for indirect reference binding via conversion function
1572 11.6.3 Incorrect example for rvalue reference binding via conversion function
1573 _N4527_.12.9 Inherited constructor characteristics
1589 16.3.3.2 Ambiguous ranking of list-initialization sequences
1591 17.9.2.1 Deducing array bound and element type from initializer list
1596 8.9 Non-array objects as array[1]
1600 10.1.7.2 Erroneous reference initialization in example
1603 6.5 Errors resulting from giving unnamed namespaces internal linkage
1614 6.2 Address of pure virtual function vs odr-use
1615 10.6.2 Alignment of types, variables, and members
1630 11.6 Multiple default constructor templates
1631 16.3.3.1.5 Incorrect overload resolution for single-element initializer-list
1633 11.6 Copy-initialization in member initialization
1638 10.2 Declaring an explicit specialization of a scoped enumeration
1639 18.4 exception-specifications and pointer/pointer-to-member expressions
1645 _N4527_.12.9 Identical inheriting constructors via default arguments
1652 8.10 Object addresses in constexpr expressions
1653 8.3.2 Removing deprecated increment of bool
1657 10.3.1 Attributes for namespaces and enumerators
1672 12.2 Layout compatibility with multiple empty bases
1683 8.20 Incorrect example after constexpr changes
1686 6.5 Which variables are “explicitly declared const?”
1694 8.20 Restriction on reference to temporary as a constant expression
1696 15.2 Temporary lifetime and non-static data member initializers
1705 17.9.2.4 Unclear specification of “more specialized”
1708 10.5 overly-strict requirements for names with C language linkage
1712 10.1.5 constexpr variable template declarations
1715 _N4527_.12.9 Access and inherited constructor templates
1719 12.2 Layout compatibility and cv-qualification revisited
1722 8.1.5 Should lambda to function pointer conversion function be noexcept?
1734 15.8 Nontrivial deleted copy functions
1736 _N4527_.12.9 Inheriting constructor templates in a local class
1744 6.6.2 Unordered initialization for variable template specializations
1748 8.3.4 Placement new with a null pointer
1750 16.3.1.4 “Argument” vs “parameter”
1751 6.8 Non-trivial operations vs non-trivial initialization
1752 15.6.2 Right-recursion in mem-initializer-list
1753 6.4.3 decltype-specifier in nested-name-specifier of destructor
1756 11.6.4 Direct-list-initialization of a non-class object
1757 8.20 Const integral subobjects
1758 16.3.1.7 Explicit conversion in copy/move list initialization
1766 10.2 Values outside the range of the values of an enumeration
1774 18.2 Discrepancy between subobject destruction and stack unwinding
1776 6.8 Replacement of class objects containing reference members
1777 18.4 Empty pack expansion in dynamic-exception-specification
1779 17.7.2.2 Type dependency of __func__
1780 8.1.5 Explicit instantiation/specialization of generic lambda operator()
1782 11.6 Form of initialization for nullptr_t to bool conversion
1788 8.3.5 Sized deallocation of array of non-class type
1791 11.4.1 Incorrect restrictions on cv-qualifier-seq and ref-qualifier
1793 10.1.1 thread_local in explicit specializations
1795 10.3.1 Disambiguating original-namespace-definition and extension-namespace-definition
1796 5.3 Is all-bits-zero for null characters a meaningful requirement?
1797 6.9.1 Are all bit patterns of unsigned char distinct numbers?
1799 10.1.1 mutable and non-explicit const qualification
1800 8.3.1 Pointer to member of nested anonymous union
1802 5.13.5 char16_t string literals and surrogate pairs
1804 17.6.4 Partial specialization and friendship
1805 8.16 Conversions of array operands in conditional-expressions
1806 15.8 Virtual bases and move-assignment
1807 18.2 Order of destruction of array elements after an exception
1809 17.9.2 Narrowing and template argument deduction
1810 5.13.8 Invalid ud-suffixes
1811 15.4 Lookup of deallocation function in a virtual destructor definition
1813 12 Direct vs indirect bases in standard-layout classes
1814 11.3.6 Default arguments in lambda-expressions
1815 11.6.1 Lifetime extension in aggregate initialization
1816 7.8 Unclear specification of bit-field values
1819 17.6.5 Acceptable scopes for definition of partial specialization
1823 10.1.2 String literal uniqueness in inline functions
1824 11.3.5 Completeness of return type vs point of instantiation
1830 10 Repeated specifiers
1832 8.2.9 Casting to incomplete enumeration
1834 6.6.2 Constant initialization binding a reference to an xvalue
1838 10.3.1.2 Definition via unqualified-id and using-declaration
1843 8.16 Bit-field in conditional operator with throw operand
1846 11.4.2 Declaring explicitly-defaulted implicitly-deleted functions
1847 17.9.2.5 Clarifying compatibility during partial ordering
1848 15.4 Parenthesized constructor and destructor declarators
1850 17.7 Differences between definition context and point of instantiation
1851 8.3.4 decltype(auto) in new-expressions
1852 10.1.7.2 Wording issues regarding decltype(auto)
1858 8.10 Comparing pointers to union members
1861 12.2.4 Values of a bit-field
1863 18.1 Requirements on thrown object type to support std::current_exception()
1865 8.7 Pointer arithmetic and multi-level qualification conversions
1866 18.2 Initializing variant members with non-trivial destructors
1870 6.1 Contradictory wording about definitions vs explicit specialization/instantiation
1872 10.1.5 Instantiations of constexpr templates that cannot appear in constant expressions
1873 14.2 Protected member access from derived class friends
1874 17.1 Type vs non-type template parameters with class keyword
1875 6.3.7 Reordering declarations in class scope
1877 10.1.7.4 Return type deduction from return with no operand
1878 10.1.7.4 operator auto template
1881 12 Standard-layout classes and unnamed bit-fields
1882 _N4140_.17.6.4.3.2 Reserved names without library use
1885 8.2.2 Return value of a function is underspecified
1886 6.6.1 Language linkage for main()
1887 10.3.3 Problems with :: as nested-name-specifier
1888 15.1 Implicitly-declared default constructors and explicit
1891 8.1.5 Move constructor/assignment for closure class
1892 10.1.7.4 Use of auto in function type
1895 8.16 Deleted conversions in conditional operator operands
1899 17.7.2.3 Value-dependent constant expressions
1902 16.3.3.1 What makes a conversion “otherwise ill-formed”?
1903 10.3.3 What declarations are introduced by a non-member using-declaration?
1909 12.2 Member class template with the same name as the class
1911 10.1.5 constexpr constructor with non-literal base class
1916 15.8 “Same cv-unqualified type”
1920 8.2.4 Qualification mismatch in pseudo-destructor-name
1922 17.7.1 Injected class template names and default arguments
1925 8.19 Bit-field prvalues
1926 6.2 Potential results of subscript operator
1929 _N4567_.5.1.1 template keyword following namespace nested-name-specifier
1930 10.1.1 init-declarator-list vs member-declarator-list
1932 8.16 Bit-field results of conditional operators
1940 12.3 static_assert in anonymous unions
1941 _N4527_.12.9 SFINAE and inherited constructor default arguments
1942 8.1.5 Incorrect reference to trailing-return-type
1946 18.4 exception-specifications vs pointer dereference
1949 4.6 “sequenced after” instead of “sequenced before”
1951 6.9 Cv-qualification and literal types
1952 8.20 Constant expressions and library undefined behavior
1955 19.1 #elif with invalid controlling expression
1956 6.7.3 Reuse of storage of automatic variables
1958 10.1.7.4 decltype(auto) with parenthesized initializer
1959 _N4527_.12.9 Inadvertently inherited copy constructor
1963 5.10 Implementation-defined identifier characters
1966 10.2 Colon following enumeration elaborated-type-specifier
1967 15.8 Temporary lifetime and move-elision
1971 8.3.1 Unclear disambiguation of destructor and operator~
1975 18.4 Permissible declarations for exception-specifications
1978 15.3.1 Redundant description of explicit constructor use
1981 7 Implicit contextual conversions and explicit
1988 17.7.2.1 Ambiguity between dependent and non-dependent bases in implicit member access
1990 10 Ambiguity due to optional decl-specifier-seq
1991 _N4527_.12.9 Inheriting constructors vs default arguments
1992 8.3.4 new (std::nothrow) int[N] can throw
1995 18.4 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 19 non-directive is underspecified
2004 8.20 Unions with mutable members in constant expressions
2006 6.9.2 Cv-qualified void types
2008 17.3 Default template-arguments underspecified
2010 18.4 exception-specifications and conversion operators
2012 6.7 Lifetime of references
2015 11.4.3 odr-use of deleted virtual functions
2016 15.3.2 Confusing wording in description of conversion function
2017 9.6.3 Flowing off end is not equivalent to no-expression return
2019 6.7.5 Member references omitted from description of storage duration
2022 8.20 Copy elision in constant expressions
2024 17.7.2.1 Dependent types and unexpanded parameter packs
2026 6.6 Zero-initialization and constexpr
2027 10.6.2 Unclear requirements for multiple alignas specifiers
2031 C.2.3 Missing incompatibility for &&
2032 17.1 Default template-arguments of variable templates
2033 17.6.5 Redundant restriction on partial specialization argument
2038 C.4 Document C++14 incompatibility of new braced deduction rule
2039 18.4 Constant conversions to bool
2040 11 trailing-return-type no longer ambiguous
2041 17.8.3 Namespace for explicit class template specialization
2044 10.1.7.4 decltype(auto) and void
2047 18.4 Coordinating “throws anything” specifications
2052 16.5 Template argument deduction vs overloaded operators
2061 10.3.1 Inline namespace after simplifications
2063 6.3.1 Type/nontype hiding in class scope
2064 17.5 Conflicting specifications for dependent decltype-specifiers
2066 17.7.2.3 Does type-dependent imply value-dependent?
2068 15.4 When can/must a defaulted virtual destructor be defined?
2069 15.4 Do destructors have names?
2071 10.1.3 typedef with no declarator
2075 16.3.3.1.5 Passing short initializer lists to array reference parameters
2076 16.3.3.1 List-initialization of arguments for constructor parameters
2079 10.6.1 [[ appearing in a balanced-token-seq
2082 11.3.6 Referring to parameters in unevaluated operands of default arguments
2084 15.1 NSDMIs and deleted union default constructors
2085 6.2 Invalid example of adding special member function via default argument
2091 17.9.2.5 Deducing reference non-type template arguments
2093 18.3 Qualification conversion for pointer-to-member handler matching
2095 8.1.5 Capturing rvalue references to functions by copy
2096 6.9 Constraints on literal unions
2098 18.5.2 Is uncaught_exceptions() per-thread?
2099 11.3.4 Inferring the bound of an array static data member
2101 17.7.2 Incorrect description of type- and value-dependence
2104 6.2 Internal-linkage constexpr references and ODR requirements
2106 17.3.1 Unclear restrictions on use of function-type template arguments
2107 15.2 Lifetime of temporaries for default arguments in array copying
2109 17.7.2.3 Value dependence underspecified
2113 11.3 Incompete specification of types for declarators
2120 12 Array as first non-static data member in standard-layout class
2122 6.10 Glvalues of void type
2124 3.23 Signature of constructor template
2129 8.20 Non-object prvalues and constant expressions
2130 8.3.4 Over-aligned types in new-expressions
2137 11.6.4 List-initialization from object of same type
2140 7.1 Lvalue-to-rvalue conversion of std::nullptr_t
2141 8.3.4 Ambiguity in new-expression with elaborated-type-specifier
2145 11.4.1 Parenthesized declarator in function definition
2146 4.6 Scalar object vs memory location in definition of “unsequenced”
2147 17.9.2.1 Initializer-list arguments and pack deduction
2153 12.2 pure-specifier in friend declaration
2154 12.2 Ambiguity of pure-specifier
2156 10.2 Definition of enumeration declared by using-declaration
2157 10.1.7.3 Further disambiguation of enumeration elaborated-type-specifier
2163 10.1.5 Labels in constexpr functions
2167 8.20 Non-member references with lifetimes within the current evaluation
2171 15.8 Triviality of copy constructor with less-qualified parameter
2175 11.2 Ambiguity with attribute in conversion operator declaration
2176 8.2.2 Destroying the returned object when a destructor throws
2180 15.8 Virtual bases in destructors and defaulted assignment operators
2184 C.1.4 Missing C compatibility entry for decrement of bool

Issues with "C++17" Status:

Issue Section Title
150 17.3.3 Template template parameters and default arguments
253 11.6 Why must empty or fully-initialized const objects be initialized?
314 17.2 template in base class specifier
343 17.2 Make template optional in contexts that require a type
426 6.5 Identically-named variables, one internally and one externally linked, allowed?
727 17.8.3 In-class explicit specializations
1343 4.6 Sequencing of non-class initialization
1395 17.9.2.5 Partial ordering of variadic templates reconsidered
1622 11.6.1 Empty aggregate initializer for union
1677 6.6.2 Constant initialization via aggregate initialization
1710 13 Missing template keyword in class-or-decltype
1784 9.7 Concurrent execution during static local initialization
1794 17.2 template keyword and alias templates
1812 17.2 Omission of template in a typename-specifier
1825 17.9.2.4 Partial ordering between variadic and non-variadic function templates
1860 12.3 What is a “direct member?”
1961 4.7 Potentially-concurrent actions within a signal handler
2011 8.1.5 Unclear effect of reference capture of reference
2046 4.7 Incomplete thread specifications
2094 15.8 Trivial copy/move constructor for class with volatile member
2100 17.7.2.3 Value-dependent address of static data member of class template
2143 17.7.2.1 Value-dependency via injected-class-name
2155 10.3.1.2 Defining classes and enumerations via using-declarations
2174 17.6.4 Unclear rules for friend definitions in templates
2191 18.4 Incorrect result for noexcept(typeid(v))
2196 11.6 Zero-initialization with virtual base classes
2198 6.5 Linkage of enumerators
2201 6.9.3 Cv-qualification of array types
2205 10.6.1 Restrictions on use of alignas
2206 8 Composite type of object and function pointers
2211 8.1.5 Hiding by lambda captures and parameters
2214 6.9.1 Missing requirement on representation of integer values
2218 6.4 Ambiguity and namespace aliases
2220 9.5.4 Hiding index variable in range-based for
2224 8.2.9 Member subobjects and base-class casts
2247 8.1.5 Lambda capture and variable argument list
2248 8.3.5 Problems with sized delete
2251 11.6.4 Unreachable enumeration list-initialization
2259 11.2 Unclear context describing ambiguity
2262 10.4 Attributes for asm-definition
2268 10.1.5 Unions with mutable members in constant expressions revisited
2271 15.1 Aliasing this
2272 11.6.1 Implicit initialization of aggregate members of reference type
2276 17.7.2.3 Dependent noexcept and function type-dependence