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 N5001.
Issue |
Section |
Title |
2 |
13.8.4 |
How can dependent names be used in member declarations that appear outside of the class template definition?
|
189 |
5.8 |
Definition of operator and punctuator
|
205 |
13 |
Templates and static data members
|
287 |
13.8.4.1 |
Order dependencies in template instantiation
|
325 |
9.3.4.7 |
When are default arguments parsed?
|
369 |
5.5 |
Are new/delete identifiers or preprocessing-op-or-punc?
|
472 |
11.8.5 |
Casting across protected inheritance
|
529 |
13.9.4 |
Use of template<> with “explicitly-specialized” class templates
|
549 |
13.7.6.2 |
Non-deducible parameters in partial specializations
|
901 |
7.6.2.8 |
Deleted operator delete
|
1092 |
11.4.5.3 |
Cycles in overload resolution during instantiation
|
1172 |
13.10.3 |
“instantiation-dependent” constructs
|
1211 |
6.7.3 |
Misaligned lvalues
|
1255 |
7.7 |
Definition problems with constexpr functions
|
1278 |
12.2.2.2.2 |
Incorrect treatment of contrived object
|
1279 |
C.6 |
Additional differences between C++ 2003 and C++ 2011
|
1283 |
11.4.9.3 |
Static data members of classes with typedef name for linkage purposes
|
1286 |
13.7.8 |
Equivalence of alias templates
|
1304 |
9.4.3 |
Omitted array bound with string initialization
|
1322 |
13.10.3 |
Function parameter type decay in templates
|
1348 |
9.2.9.7 |
Use of auto in a trailing-return-type
|
1390 |
13.8.3.2 |
Dependency of alias template specializations
|
1404 |
11.5 |
Object reallocation in unions
|
1414 |
9.4.4 |
Binding an rvalue reference to a reference-unrelated lvalue
|
1444 |
13.2 |
Type adjustments of non-type template parameters
|
1463 |
13.1 |
extern "C" alias templates
|
1485 |
9.7.1 |
Out-of-class definition of member unscoped opaque enumeration
|
1486 |
13.10.3.3 |
Base-derived conversion in member pointer deduction
|
1488 |
9.3.2 |
abstract-pack-declarators in type-ids
|
1513 |
13.10.3.2 |
initializer_list deduction failure
|
1517 |
11.9.5 |
Unclear/missing description of behavior during construction/destruction
|
1524 |
13.8.3.2 |
Incompletely-defined class template base
|
1529 |
6.1 |
Nomenclature for variable vs reference non-static data member
|
1530 |
6.7.4 |
Member access in out-of-lifetime objects
|
1536 |
12.2.4.2.6 |
Overload resolution with temporary from initializer list
|
1542 |
7.6.19 |
Compound assignment of braced-init-list
|
1548 |
11.4.5.3 |
Copy/move construction and conversion functions
|
1554 |
13.7.8 |
Access and alias templates
|
1580 |
9.3.4.7 |
Default arguments in explicit instantiations
|
1582 |
13.10.3 |
Template default arguments and deduction failure
|
1584 |
13.10.3.2 |
Deducing function types from cv-qualified types
|
1594 |
11.4.5.3 |
Lazy declaration of special members vs overload errors
|
1610 |
13.10.3.5 |
Cv-qualification in deduction of reference to array
|
1623 |
11.4.5 |
Deleted default union constructor and member initializers
|
1634 |
6.7.6 |
Temporary storage duration
|
1635 |
13.2 |
How similar are template default arguments to function default arguments?
|
1647 |
13.7.6 |
Type agreement of non-type template arguments in partial specializations
|
1655 |
5.5 |
Line endings in raw string literals
|
1665 |
13.9.3 |
Declaration matching in explicit instantiations
|
1668 |
9.3.4.6 |
Parameter type determination still not clear enough
|
1670 |
9.2.9.7 |
auto as conversion-type-id
|
1676 |
6.7.6.5.2 |
auto return type for allocation and deallocation functions
|
1680 |
8.6.5 |
Including <initializer_list> for range-based for
|
1701 |
6.8 |
Array vs sequence in object representation
|
1702 |
11.5 |
Rephrasing the definition of “anonymous union”
|
1706 |
9.12.1 |
alignas pack expansion syntax
|
1709 |
15.6.3 |
Stringizing raw string literals containing newline
|
1718 |
15.6 |
Macro invocation spanning end-of-file
|
1723 |
5.13.9 |
Multicharacter user-defined character literals
|
1730 |
13.7 |
Can a variable template have an unnamed type?
|
1735 |
5.13.9 |
Out-of-range literals in user-defined-literals
|
1755 |
13.7.6.4 |
Out-of-class partial specializations of member templates
|
1808 |
11.4.5 |
Constructor templates vs default constructors
|
1817 |
9.11 |
Linkage specifications and nested scopes
|
1827 |
9.4.4 |
Reference binding with ambiguous conversions
|
1840 |
13.9.4 |
Non-deleted explicit specialization of deleted function template
|
1845 |
13.8.4.1 |
Point of instantiation of a variable template specialization
|
1854 |
9.5.2 |
Disallowing use of implicitly-deleted functions
|
1868 |
9.2.9.7 |
Meaning of “placeholder type”
|
1883 |
11.8.5 |
Protected access to constructors in mem-initializers
|
1889 |
15.9 |
Unclear effect of #pragma on conformance
|
1890 |
11.4 |
Member type depending on definition of member function
|
1901 |
5.10 |
punctuator referenced but not defined
|
1977 |
11.4.7 |
Contradictory results of failed destructor lookup
|
1979 |
13.7.8 |
Alias template specialization in template member definition
|
1980 |
13.7.8 |
Equivalent but not functionally-equivalent redeclarations
|
1986 |
6.9.3.2 |
odr-use and delayed initialization
|
1989 |
12.4 |
Insufficient restrictions on parameters of postfix operators
|
1993 |
13.9.4 |
Use of template<> defining member of explicit specialization
|
1996 |
9.4.5 |
Reference list-initialization ignores conversion functions
|
2003 |
15.6 |
Zero-argument macros incorrectly specified
|
2013 |
7.6.6 |
Pointer subtraction in large array
|
2023 |
7.6.16 |
Composite reference result type of conditional operator
|
2028 |
12.2.2.7 |
Converting constructors in rvalue reference initialization
|
2037 |
13.6 |
Alias templates and template declaration matching
|
2042 |
6.7.6.5.3 |
Exceptions and deallocation functions
|
2043 |
13.4.3 |
Generalized template arguments and array-to-pointer decay
|
2055 |
13.10.2 |
Explicitly-specified non-deduced parameter packs
|
2056 |
11.9.3 |
Member function calls in partially-initialized class objects
|
2057 |
13.4.4 |
Template template arguments with default arguments
|
2073 |
6.7.6.5.2 |
Allocating memory for exception objects
|
2074 |
13.8.3.2 |
Type-dependence of local class of function template
|
2077 |
12.2.4.2.5 |
Overload resolution and invalid rvalue-reference initialization
|
2086 |
7.5.6.3 |
Reference odr-use vs implicit capture
|
2089 |
12.2.2.3 |
Restricting selection of builtin overloaded operators
|
2090 |
13.8.3.5 |
Dependency via non-dependent base class
|
2108 |
12.2.2.7 |
Conversions to non-class prvalues in reference initialization
|
2110 |
12.2.4.3 |
Overload resolution for base class conversion and reference/non-reference
|
2115 |
8.7 |
Order of implicit destruction vs release of automatic storage
|
2117 |
9.2.6 |
Explicit specializations and constexpr function templates
|
2127 |
13.7.6 |
Partial specialization and nullptr
|
2128 |
9.4.2 |
Imprecise rule for reference member initializer
|
2131 |
9.7.1 |
Ambiguity with opaque-enum-declaration
|
2148 |
6.9.3.2 |
Thread storage duration and order of initialization
|
2158 |
11.4.7 |
Polymorphic behavior during destruction
|
2166 |
7.7 |
Unclear meaning of “undefined constexpr function”
|
2172 |
14.4 |
Multiple exceptions with one exception object
|
2179 |
13.7.6.1 |
Required diagnostic for partial specialization after first use
|
2182 |
7.6.6 |
Pointer arithmetic in array-like containers
|
2187 |
11.8.5 |
Protected members and access via qualified-id
|
2194 |
12.2.2.8 |
Impossible case in list initialization
|
2202 |
13.9.2 |
When does default argument instantiation occur?
|
2203 |
11.4.5.3 |
Defaulted copy/move constructors and UDCs
|
2219 |
14.4 |
Dynamically-unreachable handlers
|
2222 |
13.9.2 |
Additional contexts where instantiation is not required
|
2223 |
9.12.2 |
Multiple alignas specifiers
|
2236 |
13.7.8 |
When is an alias template specialization dependent?
|
2243 |
7.6.1.9 |
Incorrect use of implicit conversion sequence
|
2245 |
13.8.4.1 |
Point of instantiation of incomplete class template
|
2246 |
11.8.3 |
Access of indirect virtual base class constructors
|
2263 |
13.9.2 |
Default argument instantiation for friends
|
2264 |
11.4.5.3 |
Memberwise copying with indeterminate value
|
2265 |
13.9.2 |
Delayed pack expansion and member redeclarations
|
2275 |
13.8.3.3 |
Type-dependence of function template
|
2281 |
7.6.2.8 |
Consistency of aligned operator delete replacement
|
2316 |
7.6.16 |
Simplifying class conversions in conditional expressions
|
2319 |
12.2.4.2 |
Nested brace initialization from same type
|
2324 |
6.7.2 |
Size of base class subobject
|
2325 |
6.7.2 |
std::launder and reuse of character buffers
|
2327 |
9.4 |
Copy elision for direct-initialization with a conversion function
|
2328 |
13.10.3.6 |
Unclear presentation style of template argument deduction rules
|
2329 |
11.4.6 |
Virtual base classes and generated assignment operators
|
2335 |
11.4.9.3 |
Deduced return types vs member types
|
2395 |
13.2 |
Parameters following a pack expansion
|
2398 |
13.4.4 |
Template template parameter matching and deduction
|
2401 |
13.4.3 |
Array decay vs prohibition of subobject non-type arguments
|
2403 |
11.9.3 |
Temporary materialization and base/member initialization
|
2409 |
13.9.4 |
Explicit specializations of constexpr static data members
|
2421 |
13.9.3 |
Explicit instantiation of constrained member functions
|
2444 |
6.9.3.3 |
Constant expressions in initialization odr-use
|
2462 |
13.8.1 |
Problems with the omission of the typename keyword
|
2467 |
12.2.2.9 |
CTAD for alias templates and the deducible check
|
2468 |
13.8.1 |
Omission of the typename keyword in a member template parameter list
|
2469 |
6.7.2 |
Implicit object creation vs constant expressions
|
2471 |
12.2.2.9 |
Nested class template argument deduction
|
2473 |
7.5.5.5 |
Parentheses in pseudo-destructor calls
|
2480 |
6.5.1 |
Lookup for enumerators in modules
|
2487 |
13.8.3.3 |
Type dependence of function-style cast to incomplete array type
|
2492 |
12.2.4.2.6 |
Comparing user-defined conversion sequences in list-initialization
|
2497 |
13.8.4.1 |
Points of instantiation for constexpr function templates
|
2501 |
13.9.3 |
Explicit instantiation and trailing requires-clauses
|
2503 |
7.5.5 |
Unclear relationship among name, qualified name, and unqualified name
|
2505 |
9.8.2.2 |
Nested unnamed namespace of inline unnamed namespace
|
2525 |
12.2.4.2.1 |
Incorrect definition of implicit conversion sequence
|
2537 |
9.3.4.6 |
Overbroad grammar for parameter-declaration
|
2555 |
9.9 |
Ineffective redeclaration prevention for using-declarators
|
2563 |
9.5.4 |
Initialization of coroutine result object
|
2564 |
12.2.2.2.3 |
Conversion to function pointer with an explicit object parameter
|
2596 |
13.9.2 |
Instantiation of constrained non-template friends
|
2607 |
10.2 |
Visibility of enumerator names
|
2623 |
7.6.2.8 |
Invoking destroying operator delete for constructor failure
|
2632 |
3 |
'user-declared' is not defined
|
2656 |
7.7 |
Converting consteval lambda to function pointer in non-immediate context
|
2742 |
9.4.5 |
Guaranteed copy elision for brace-initialization from prvalue
|
2799 |
11.4.5.2 |
Inheriting default constructors
|
2826 |
6.7.7 |
Missing definition of "temporary expression"
|
2843 |
2 |
Undated reference to Unicode makes C++ a moving target
|
2863 |
6.7.4 |
Unclear synchronization requirements for object lifetime rules
|
2903 |
13.3 |
Can we omit the template disambiguator in nested-name-specifiers in type-only contexts?
|
2926 |
6.5.5.1 |
Lookup context for dependent qualified names
|
2929 |
6.9.3.4 |
Lifetime of trivially-destructible static or thread-local objects
|
Issue |
Section |
Liaison |
Title |
57 |
11.5 |
Empty unions
|
144 |
9.2.9.5 |
Position of friend specifier
|
146 |
6.8.2 |
Floating-point zero
|
157 |
9.1 |
Omitted typedef declarator
|
186 |
13.8.2 |
Name hiding and template template-parameters
|
196 |
7.6.2.9 |
Arguments to deallocation functions |
251 |
6.8.2 |
How many signed integer types are there?
|
260 |
12.5 |
User-defined conversions and built-in operator=
|
264 |
13.10.2 |
Unusable template constructors and conversion functions
|
267 |
7.6.2.8 |
Alignment requirement for new-expressions
|
268 |
15.6.5 |
Macro name suppression in rescanned replacement text
|
282 |
7.6.1.8 |
Namespace for extended_type_info
|
293 |
13.9.3 |
Syntax of explicit instantiation/specialization too permissive
|
310 |
13.7.7.2 |
Can function templates differing only in parameter cv-qualifiers be overloaded?
|
350 |
6.8 |
signed char underlying representation for objects
|
361 |
9.3.4.7 |
Forward reference to default argument
|
365 |
6.7.6 |
Storage duration and temporaries
|
371 |
6.9.3.2 |
Interleaving of constructor calls
|
380 |
6.5.2 |
Definition of "ambiguous base class" missing
|
402 |
13.7.7.3 |
More on partial ordering of function templates
|
419 |
6.7.4 |
Can cast to virtual base class be done on partially-constructed object?
|
498 |
9.2.2 |
Storage class specifiers in definitions of class members
|
503 |
13.10.3.2 |
Cv-qualified function types in template argument deduction
|
511 |
11.2 |
POD-structs with template assignment operators
|
523 |
6.7.6.5.3 |
Can a one-past-the-end pointer be invalidated by deleting an adjacent object?
|
545 |
12.2.2.3 |
User-defined conversions and built-in operator overload resolution
|
579 |
13.3 |
What is a “nested” > or >>?
|
697 |
13.10.3 |
Deduction rules apply to more than functions
|
698 |
6.9.1 |
The definition of “sequenced before” is too narrow
|
708 |
13.7.6 |
Partial specialization of member templates of class templates
|
742 |
7.6.1.6 |
Postfix increment/decrement with long bit-field operands
|
783 |
3 |
Definition of “argument”
|
813 |
9.9 |
typename in a using-declaration with a non-dependent name
|
897 |
15.12 |
_Pragma and extended string-literals
|
914 |
7.6.1.4 |
Value-initialization of array types
|
925 |
15.2 |
Type of character literals in preprocessor expressions
|
949 |
4.1 |
Requirements for freestanding implementations
|
954 |
12.5 |
Overload resolution of conversion operator templates with built-in types
|
1046 |
13.9.3 |
What is a “use” of a class specialization?
|
1049 |
11.9.6 |
Copy elision through reference parameters of inline functions
|
1089 |
6.5.5.1 |
Template parameters in member selections
|
1157 |
13.7.7.3 |
Partial ordering of function templates is still underspecified
|
1209 |
6.3 |
Is a potentially-evaluated expression in a template definition a “use?”
|
1221 |
13.10.3.5 |
Partial ordering and reference collapsing
|
1248 |
C.7 |
Updating Annex C to C99 and C23
|
1256 |
7.7 |
Unevaluated operands are not necessarily constant expressions
|
1257 |
13.8 |
Instantiation via non-dependent references in uninstantiated templates
|
1266 |
5.13.9 |
user-defined-integer-literal overflow
|
1294 |
6.9.3.2 |
Side effects in dynamic/static initialization
|
1430 |
13.7.8 |
Pack expansion into fixed alias template parameter list
|
1436 |
15.2 |
Interaction of constant expression changes with preprocessor expressions
|
1459 |
12.2.4.3 |
Reference-binding tiebreakers in overload resolution
|
1549 |
12.4.3 |
Overloaded comma operator with void operand
|
1609 |
9.3.4.7 |
Default arguments and function parameter packs
|
1617 |
9.12.2 |
alignas and non-defining declarations
|
1619 |
13.8.3.2 |
Definition of current instantiation
|
1620 |
12.6 |
User-defined literals and extended integer types
|
1625 |
15.6.3 |
Adding spaces between tokens in stringizing
|
1628 |
7.6.2.8 |
Deallocation function templates
|
1659 |
6.9.3.2 |
Initialization order of thread_local template static data members
|
1682 |
6.7.6.5.2 |
Overly-restrictive rules on function templates as allocation functions
|
1699 |
11.8.4 |
Does befriending a class befriend its friends?
|
1763 |
13.10.3.6 |
Length mismatch in template type deduction
|
1789 |
12.2.4.3 |
Array reference vs array decay in overload resolution
|
1790 |
9.3.4.6 |
Ellipsis following function parameter pack
|
1842 |
6.9.2 |
Unevaluated operands and “carries a dependency”
|
1844 |
13.10.3 |
Defining “immediate context”
|
1856 |
13.9.2 |
Indirect nested classes of class templates
|
1915 |
11.9.3 |
Potentially-invoked destructors in non-throwing constructors
|
1919 |
12.2.2.3 |
Overload resolution for ! with explicit conversion operator
|
1939 |
13.10.3.2 |
Argument conversions to nondeduced parameter types revisited
|
1944 |
Annex C |
New C incompatibilities
|
1962 |
9.5.1 |
Type of __func__
|
1965 |
7.6.1.7 |
Explicit casts to reference types
|
2002 |
15 |
White space within preprocessing directives
|
2048 |
7.6.1.9 |
C-style casts that cast away constness vs static_cast
|
2067 |
13.8 |
Generated variadic templates requiring empty pack
|
2105 |
13.4 |
When do the arguments for a parameter pack end?
|
2118 |
13.7.5 |
Stateful metaprogramming via friend injection
|
2123 |
8.8 |
Omitted constant initialization of local static variables
|
2160 |
13.7.7.3 |
Issues with partial ordering
|
2168 |
9.4.5 |
Narrowing conversions and +/- infinity
|
2169 |
12.2.4.2.6 |
Narrowing conversions and overload resolution
|
2173 |
13.7.6 |
Partial specialization with non-deduced contexts
|
2188 |
11.4.1 |
empty-declaration grammar ambiguity
|
2189 |
12.2.2.2.3 |
Surrogate call template
|
2190 |
15.2 |
Insufficient specification of __has_include
|
2192 |
7.7 |
Constant expressions and order-of-eval undefined behavior
|
2195 |
9.2.9.2 |
Unsolicited reading of trailing volatile members
|
2228 |
9.3.3 |
Ambiguity resolution for cast to function type
|
2232 |
9.2.2 |
thread_local anonymous unions
|
2244 |
11.8.5 |
Base class access in aggregate initialization
|
2250 |
13.8.4.1 |
Implicit instantiation, destruction, and TUs
|
2258 |
6.7.4 |
Storage deallocation during period of destruction
|
2284 |
7.6.1.3 |
Sequencing of braced-init-list arguments
|
2296 |
13.10.3 |
Are default argument instantiation failures in the “immediate context”?
|
2297 |
6.9.2.2 |
Unclear specification of atomic operations
|
2298 |
6.9.2.2 |
Actions and expression evaluation
|
2301 |
7.7 |
Value-initialization and constexpr constructor evaluation
|
2311 |
12.2.2.8 |
Missed case for guaranteed copy elision
|
2334 |
6.7.2 |
Creation of objects by typeid
|
2337 |
12.2.4.3 |
Incorrect implication of logic ladder for conversion sequence tiebreakers
|
2340 |
9.6 |
Reference collapsing and structured bindings
|
2361 |
17.13.3 |
Unclear description of longjmp undefined behavior
|
2362 |
9.5.1 |
__func__ should be constexpr
|
2417 |
14.5 |
Explicit instantiation and exception specifications
|
2425 |
12.2.2.9 |
Confusing wording for deduction from a type
|
2435 |
13.9 |
Alias template specializations
|
2438 |
7.3.6 |
Problems in the specification of qualification conversions
|
2456 |
7.7 |
Viable user-defined conversions in converted constant expressions
|
2463 |
11.2 |
Trivial copyability and unions with non-trivial members
|
2488 |
6.4.1 |
Overloading virtual functions and functions with trailing requires-clauses
|
2495 |
8.7.4 |
Glvalue result of a function call
|
2498 |
13.10.3.1 |
Partial specialization failure and the immediate context
|
2513 |
11.4.8.3 |
Ambiguity with requires-clause and operator-function-id
|
2514 |
6.7.4 |
Modifying const subobjects
|
2515 |
7.6.1.3 |
Result of a function call
|
2522 |
15.6.4 |
Removing placemarker tokens and retention of whitespace
|
2532 |
7.6.2.8 |
Kind of pointer value returned by new T[0]
|
2536 |
7.7 |
Partially initialized variables during constant initialization
|
2541 |
10.1 |
Linkage specifications, module purview, and module attachment
|
2544 |
6.8.4 |
Address of past-the-end of a potentially-overlapping subobject
|
2545 |
7.7 |
Transparently replacing objects in constant expressions
|
2559 |
7.7 |
Defaulted consteval functions
|
2562 |
9.5.4 |
Exceptions thrown during coroutine startup
|
2565 |
7.5.8.1 |
Invalid types in the parameter-declaration-clause of a requires-expression
|
2575 |
15.2 |
Undefined behavior when macro-replacing "defined" operator
|
2576 |
15.3 |
Undefined behavior with macro-expanded #include directives
|
2577 |
15.6.1 |
Undefined behavior for preprocessing directives in macro arguments
|
2578 |
15.6.3 |
Undefined behavior when creating an invalid string literal via stringizing
|
2579 |
15.6.4 |
Undefined behavior when token pasting does not create a preprocessing token
|
2580 |
15.7 |
Undefined behavior with #line
|
2581 |
15.11 |
Undefined behavior for predefined macros
|
2584 |
13.7.7.2 |
Equivalent types in function template declarations
|
2592 |
7.6.2.8 |
Missing definition for placement allocation/deallocation function
|
2609 |
7.6.2.5 |
Padding in class types
|
2633 |
7.7 |
typeid of constexpr-unknown dynamic type
|
2660 |
7.6.1.3 |
Confusing term "this parameter"
|
2666 |
6.7.7 |
Lifetime extension through static_cast
|
2669 |
11.9.3 |
Lifetime extension for aggregate initialization
|
2670 |
6.6 |
Programs and translation units
|
2671 |
9.3.4.1 |
friend named by a template-id
|
2675 |
11.5.1 |
start_lifetime_as, placement-new, and active union members
|
2676 |
6.7.4 |
Replacing a complete object having base subobjects
|
2679 |
12.2.4.2.1 |
Implicit conversion sequence with a null pointer constant
|
2680 |
12.2.2.9 |
Class template argument deduction for aggregates with designated initializers
|
2684 |
6.9.3.3 |
thread_local dynamic initialization
|
2686 |
13.5.2 |
Pack expansion into a non-pack parameter of a concept
|
2688 |
7.6.1.3 |
Calling explicit object member functions
|
2693 |
15.7 |
Escape sequences for the string-literal of #line
|
2694 |
15.12 |
string-literals of the _Pragma operator
|
2701 |
9.3.4.7 |
Default arguments in multiple scopes / inheritance of array bounds in the same scope
|
2702 |
7.7 |
Constant destruction of reference members
|
2704 |
9.4.4 |
Clarify meaning of "bind directly"
|
2705 |
7.6.1.5 |
Accessing ambiguous subobjects
|
2706 |
6.6 |
Repeated structured binding declarations
|
2727 |
10.3 |
Importing header units synthesized from source files
|
2730 |
12.2.2.3 |
Comparison templates on enumeration types
|
2731 |
12.2.4.2.3 |
List-initialization sequence with a user-defined conversion
|
2734 |
7.7 |
Immediate forward-declared function templates
|
2735 |
12.2.4 |
List-initialization and conversions in overload resolution
|
2736 |
11.2 |
Standard layout class with empty base class also in first member
|
2739 |
7.5.8.5 |
Nested requirement not a constant expression
|
2740 |
7.7 |
Too many objects have constexpr-unknown type
|
2741 |
12.2.4.2.6 |
Implicit conversion sequence from empty list to array of unknown bound
|
2743 |
11.4.5.3 |
Copying non-trivial objects nested within a union
|
2744 |
6.7.2 |
Multiple objects of the same type at the same address
|
2752 |
5.13.4 |
Excess-precision floating-point literals
|
2765 |
6.7.2 |
Address comparisons between potentially non-unique objects during constant evaluation
|
2766 |
5.13.5 |
Repeated evaluation of a string-literal may yield different
objects
|
2767 |
11.5.2 |
Non-defining declarations of anonymous unions
|
2769 |
13.10.3.1 |
Substitution into template parameters and default template arguments should be interleaved
|
2770 |
13.10.3.1 |
Trailing requires-clause can refer to function parameters before they are substituted into
|
2773 |
11.5.2 |
Naming anonymous union members as class members
|
2774 |
13.8.3.4 |
Value-dependence of requires-expressions
|
2776 |
4.1.1 |
Substitution failure and implementation limits
|
2779 |
5.3.1 |
Restrictions on the ordinary literal encoding
|
2781 |
6.3 |
Unclear recursion in the one-definition rule
|
2782 |
6.3 |
Treatment of closure types in the one-definition rule
|
2784 |
17.2.4 |
Unclear definition of member-designator for offsetof
|
2786 |
7.6.10 |
Comparing pointers to complete objects
|
2787 |
11.4.4 |
Kind of explicit object copy/move assignment function
|
2788 |
6.4.1 |
Correspondence and redeclarations
|
2790 |
12.2.4.2.6 |
Aggregate initialization and user-defined conversion sequence
|
2794 |
13.7.8 |
Uniqueness of lambdas in alias templates
|
2802 |
9.3.4.6 |
Constrained auto and redeclaration with non-abbreviated syntax
|
2804 |
12.2.2.3 |
Lookup for determining rewrite targets
|
2805 |
7.6.2.9 |
Underspecified selection of deallocation function
|
2812 |
7.6.2.8 |
Allocation with explicit alignment
|
2817 |
7.6.2.5 |
sizeof(abstract class) is underspecified
|
2829 |
12.2.4.2.1 |
Redundant case in restricting user-defined conversion sequences
|
2832 |
6.7.7 |
Invented temporary variables and temporary objects
|
2835 |
6.4.1 |
Name-independent declarations
|
2837 |
11.4.5.3 |
Instantiating and inheriting by-value copy constructors
|
2838 |
6.4.3 |
Declaration conflicts in lambda-expressions
|
2839 |
11.4.7 |
Explicit destruction of base classes
|
2840 |
6.7.3 |
Missing requirements for fundamental alignments
|
2841 |
11.4.5.1 |
When do const objects start being const?
|
2842 |
12.2.4.3 |
Preferring an initializer_list over a single value
|
2844 |
12.2.2.3 |
Enumerating a finite set of built-in candidates
|
2852 |
11.4.1 |
Complete-class contexts and class-scope lambdas
|
2866 |
9.12 |
Observing the effects of [[no_unique_address]]
|
2868 |
6.7.7 |
Self-references in trivially copyable objects as function return values
|
2873 |
12.3 |
Taking the address of a function involving template argument deduction
|
2878 |
7.6.3 |
C-style casts to reference types
|
2889 |
7.6.2.9 |
Requiring an accessible destructor for destroying operator delete
|
2897 |
11.4.6 |
Copying potentially-overlapping union subobjects
|
2898 |
12.2.4.2.1 |
Clarify implicit conversion sequence from cv T to T
|
2900 |
13.10.3.6 |
Deduction of non-type template arguments with placeholder types
|
2904 |
13.1 |
Introducing template-names
|
2912 |
7.6.2.8 |
Too-large value for size in array new
|
2920 |
13.3 |
The template keyword for base classes
|
2928 |
6.9.3.3 |
No ordering for initializing thread-local variables
|
2934 |
9.5.4 |
Unclear semantics of exception escaping from unhandled_exception
|
2935 |
9.5.4 |
Destroying the coroutine state when initial-await-resume-called is false
|
2938 |
6.6 |
Inheriting linkage from a previous declaration
|
2941 |
6.7.7 |
Lifetime extension for function-style cast to reference type
|
2942 |
9.3.4.6 |
Packs in a function's parameter-type-list
|
2943 |
9.12.10 |
Discarding a void return value
|
2945 |
6.6 |
Redundant constraints on matching function template declarations
|
2946 |
13.7.7.2 |
Dependent call equivalence in non-ADL cases
|
2947 |
15.4 |
Limiting macro expansion in pp-module
|
2948 |
13.7.6.1 |
Late ambiguity for partial template specialization
|
2949 |
13.7.7.3 |
Treatment of ellipsis during partial ordering
|
2950 |
11.4.10 |
Value preservation in enumeration vs. integer bit-fields
|
2951 |
13.7.1 |
Distinguishing a primary template
|
2952 |
6.7.4 |
Vacuous initialization for subobjects
|
2953 |
6.8.1 |
Value representation for non-trivially-copyable types
|
2955 |
6.9.1 |
Unify rules about conflicting unordered accesses
|
2956 |
6.5.5.1 |
Missing allowance for pseudo-destructors in qualified lookup
|
2957 |
7.6.1.5 |
Evaluating a reference member should constitute access
|
2958 |
12.2.4.3 |
Overload resolution involving lvalue transformation and qualification conversion
|
2959 |
7.6.1.5 |
Naming enumerators in class member access expressions
|
2960 |
6.7.4 |
Introduce discontiguous object lifetime
|
2961 |
13.5 |
Checking of ill-formed types in constraint-expressions
|
2962 |
7.7 |
Evaluation of destructor call for variable with constant destruction
|
2963 |
8.9 |
Paradoxical variable-or-function declaration
|
2964 |
7.3.2 |
Reading "invalid pointer values"
|
2965 |
6.4.9 |
Generic lambdas do not have a template parameter scope
|
2966 |
6.8.2 |
Alignment and value representation of std::nullptr_t
|
2967 |
12.2.2.7 |
Explicit conversion functions
|
2968 |
6.5.1 |
Name lookup result for typedef-name vs. class-name
|
2969 |
6.4 |
Scopes in the function-try-block of a constructor
|
2970 |
6.9.2.2 |
Races with volatile sig_atomic_t bit-fields
|
Issue |
Section |
Title |
3 |
13.9.4 |
The template compilation model rules render some explicit specialization declarations not visible during instantiation
|
6 |
11.9.6 |
Should the optimization that allows a class object to alias another object also allow the case of a parameter in an inline function to alias its argument?
|
7 |
11.8.3 |
Can a class with a private virtual base class be derived from?
|
13 |
9.11 |
extern "C" for Parameters of Function Templates
|
14 |
9.11 |
extern "C" functions and declarations in different namespaces
|
17 |
11.8.3 |
Footnote 99 should discuss the naming class when describing members that can be accessed from friends
|
18 |
9.3.4.6 |
f(TYPE) where TYPE is void should be allowed
|
19 |
11.8.5 |
Clarify protected member access
|
23 |
13.7.7.3 |
Some questions regarding partial ordering of function templates
|
26 |
11.4.5.3 |
Copy constructors and default arguments
|
27 |
12.5 |
Overload ambiguities for builtin ?: prototypes
|
31 |
7.6.2.8 |
Looking up new/delete
|
34 |
13.9.2 |
Argument dependent lookup and points of instantiation
|
37 |
14.6.3 |
When is uncaught_exception() true?
|
42 |
6.4.7 |
Redefining names from base classes
|
46 |
13.9.3 |
Explicit instantiation of member templates
|
47 |
13.7.5 |
Template friend issues
|
50 |
6.3 |
Converting pointer to incomplete type to same type
|
55 |
7.6.6 |
Adding/subtracting pointer and enumeration value
|
61 |
12.3 |
Address of static member function "&p->f"
|
66 |
9.3.4.7 |
Visibility of default args vs overloads added after using-declaration
|
71 |
7 |
Incorrect cross reference
|
81 |
Annex C |
Null pointers and C compatibility
|
88 |
13.9.4 |
Specialization of member constant templates
|
91 |
6.5.4 |
A union's associated types should include the union itself
|
95 |
_N4868_.9.8.2.3 |
Elaborated type specifiers referencing names declared in friend decls
|
97 |
7.7 |
Use of bool constants in integral constant expressions
|
99 |
13.10.3.2 |
Partial ordering, references and cv-qualifiers
|
102 |
12.2.2.3 |
Operator lookup rules do not work well with parts of the library
|
104 |
14.2 |
Destroying the exception temp when no handler is found
|
107 |
9.11 |
Linkage of operator functions
|
109 |
9.9 |
Allowing ::template in using-declarations
|
111 |
11.4.5.3 |
Copy constructors and cv-qualifiers
|
114 |
13.7.3 |
Virtual overriding by template member function specializations
|
117 |
6.7.7 |
Timing of destruction of temporaries
|
130 |
7.6.2.8 |
Sequence points and new-expressions
|
132 |
6.6 |
Local types and linkage
|
154 |
9.2.2 |
Anonymous unions in unnamed namespaces
|
156 |
_N4868_.6.5.6 |
Name lookup for conversion functions
|
165 |
_N4868_.9.8.2.3 |
Definitions of friends and block-scope externs
|
167 |
_N3225_.D.2 |
Deprecating static functions
|
168 |
9.11 |
C linkage for static member functions
|
169 |
9.9 |
template-ids in using-declarations
|
174 |
_N3225_.D.2 |
Undeprecating global static
|
182 |
13.9.4 |
Access checking on explicit specializations
|
192 |
6.5.3 |
Name lookup in parameters
|
203 |
7.6.2.2 |
Type of address-of-member expression
|
209 |
11.8.4 |
Must friend declaration names be
accessible? |
211 |
14 |
Constructors should not be allowed to return normally after an exception
|
219 |
14.6.2 |
Cannot defend against destructors that throw exceptions
|
225 |
6.5.4 |
Koenig lookup and fundamental types
|
229 |
13.7.6 |
Partial specialization of function templates
|
230 |
11.7.4 |
Calls to pure virtual functions
|
231 |
6.5.3 |
Visibility of names after using-directives
|
232 |
7.6.2.2 |
Is indirection through a null pointer undefined behavior?
|
234 |
6.7.4 |
Reuse of base class subobjects
|
236 |
7.7 |
Explicit temporaries and integral constant expressions
|
243 |
12.2.4.2.3 |
Weighting of conversion functions in direct-initialization
|
247 |
12.3 |
Pointer-to-member casts and function overload resolution
|
266 |
Annex A |
No grammar sentence symbol
|
269 |
6.9.3.2 |
Order of initialization of multiply-defined static data members
of class templates
|
278 |
6.6 |
External linkage and nameless entities
|
285 |
13.9.4 |
Identifying a function template being specialized
|
290 |
6.8 |
Should memcpy be allowed into a POD with a const member?
|
294 |
7.6.1.9 |
Can static_cast drop exception specifications?
|
297 |
13.10.3 |
Which template does an explicit specialization specialize?
|
303 |
7.3.7 |
Integral promotions on bit-fields
|
307 |
11.9.5 |
Initialization of a virtual base class subobject
|
308 |
14.4 |
Catching exceptions with ambiguous base classes
|
311 |
9.8.2 |
Using qualified name to reopen nested namespace
|
315 |
11.4.9.2 |
Is call of static member function through null pointer undefined?
|
316 |
13.8.2 |
Injected-class-name of template used as template template parameter
|
333 |
9.3.3 |
Ambiguous use of "declaration" in disambiguation section
|
334 |
13.8.3.3 |
Is a comma-expression dependent if its first operand is?
|
340 |
9.3.3 |
Unclear wording in disambiguation section |
346 |
14.5 |
Typo in 15.4
|
347 |
11.4.12 |
Use of derived class name in defining base class nested class
|
356 |
11.4.5.3 |
Wording of behavior of generated copy constructor for scalar members
|
358 |
9.11 |
Namespaces and extern "C"
|
359 |
11.5 |
Type definition in anonymous union
|
363 |
11.9.2 |
Initialization of class from self
|
376 |
9.2.3 |
Class "definition" versus class "declaration"
|
384 |
6.5.4 |
Argument-dependent lookup and operator functions
|
395 |
11.4.8.3 |
Conversion operator template syntax
|
412 |
9.2.3 |
Can a replacement allocation function be inline?
|
422 |
9.2.4 |
Is a typedef redeclaration allowed with a template type that might be the same?
|
423 |
12.2.2.3 |
Can a conversion be done on the left operand of a compound assignment?
|
434 |
9.4.4 |
Unclear suppression of standard conversions while binding reference to lvalue
|
435 |
9.1 |
Change "declararation or definition" to "declaration"
|
440 |
13.4 |
Allow implicit pointer-to-member conversion on nontype template argument
|
444 |
11.4.6 |
Overriding and the generated copy assignment operator
|
445 |
11.8.4 |
Wording issue on friend declarations
|
449 |
3 |
Consistency in use of hyphen with names of "non" entities
|
455 |
12.2.4 |
Partial ordering and non-deduced arguments
|
456 |
7.3.12 |
Is initialized const int or const bool variable a null pointer constant?
|
459 |
13.8.2 |
Hiding of template parameters by base class members
|
461 |
9.10 |
Make asm conditionally-supported
|
465 |
6.9.3.2 |
May constructors of global objects call exit()?
|
467 |
8.8 |
Jump past initialization of local static variable
|
469 |
13.10.3.6 |
Const template specializations and reference arguments
|
471 |
11.8.3 |
Conflicting inherited access specifications
|
473 |
7.6.2.8 |
Block-scope declarations of allocator functions
|
478 |
9.3.4.5 |
May a function parameter be an array of an abstract class type?
|
487 |
7.7 |
Operator overloading in constant expressions
|
489 |
13.9.2 |
Must member function templates be instantiated during overload resolution?
|
501 |
11.8.4 |
Visibility of friend declarations within the befriending class
|
504 |
9.3.4.3 |
Should use of a variable in its own initializer require a diagnostic?
|
512 |
11.5 |
Union members with user-declared non-default constructors
|
528 |
7.6.1.8 |
Why are incomplete class types not allowed with typeid?
|
533 |
15.3 |
Special treatment for C-style header names
|
544 |
13.8.3 |
Base class lookup in explicit specialization
|
552 |
13.3 |
Use of typename in the type in a non-type parameter-declaration
|
553 |
_N4868_.9.8.2.3 |
Problems with friend allocation and deallocation functions
|
560 |
13.8 |
Use of the typename keyword in return types
|
566 |
7.3.11 |
Conversion of negative floating point values to integer type
|
567 |
7.6.6 |
Can size_t and ptrdiff_t be larger than long?
|
574 |
11.4.6 |
Definition of “copy assignment operator”
|
584 |
7.2.1 |
Unions and aliasing
|
585 |
11.8.4 |
Friend template template parameters
|
586 |
13.10.3.6 |
Default template-arguments and template argument deduction
|
593 |
14.4 |
Falling off the end of a destructor's function-try-block handler
|
596 |
_N4606_.15.5.2 |
Replacing an exception object
|
610 |
7.6.2.2 |
Computing the negative of 0U
|
617 |
7.3.2 |
Lvalue-to-rvalue conversions of uninitialized char objects
|
622 |
7.6.9 |
Relational comparisons of arbitrary pointers
|
627 |
6.8.2 |
Values behaving as types
|
635 |
6.5.5.2 |
Names of constructors and destructors of templates
|
640 |
6.9.3.3 |
Accessing destroyed local objects of static storage duration
|
643 |
9.2.9.3 |
Use of decltype in a class member-specification
|
646 |
6.8 |
Can a class with a constexpr copy constructor be a literal type?
|
662 |
13.10.3 |
Forming a pointer to a reference type
|
669 |
9.2.9.3 |
Confusing specification of the meaning of decltype
|
673 |
_N4868_.9.8.2.3 |
Injection of names from elaborated-type-specifiers in friend declarations
|
687 |
_N4567_.5.1.1 |
template keyword with unqualified-ids
|
706 |
9.2.9.7 |
Use of auto with rvalue references
|
718 |
11.8.4 |
Non-class, non-function friend declarations
|
728 |
13 |
Restrictions on local classes
|
733 |
11.4.6 |
Reference qualification of copy assignment operators
|
736 |
9.3 |
Is the & ref-qualifier needed?
|
794 |
7.3.13 |
Base-derived conversion in member type of pointer-to-member conversion
|
795 |
7.5.6 |
Dependency of lambdas on <functional>
|
800 |
7.6.1.10 |
Safely-derived pointers and object pointers converted from function pointers
|
807 |
7.7 |
typeid expressions in constant expressions
|
819 |
11.4.4 |
Access control and deleted implicitly-declared special member functions
|
822 |
13 |
Additional contexts for template aliases
|
829 |
14.5 |
At what point is std::unexpected called?
|
836 |
9.12.11 |
[[noreturn]] applied to function types
|
885 |
13.10.3.5 |
Partial ordering of function templates with unordered parameter pairs
|
893 |
9.7.1 |
Brace syntax for enumerator-definitions
|
902 |
11.4.9.3 |
In-class initialization of non-constant static data members
|
909 |
7.6.3 |
Old-style casts with conversion functions
|
937 |
5.13.9 |
Restrictions on values of template arguments in user-defined literals
|
944 |
7.6.1.10 |
reinterpret_cast for all types with the same size and alignment
|
947 |
13.10.4 |
Deducing type template arguments from default function arguments
|
958 |
7.5.6 |
Lambdas and decltype
|
967 |
6.7.6.5 |
Exception specification of replacement allocation function
|
982 |
9.4.5 |
Initialization with an empty initializer list
|
992 |
11.4.5.3 |
Inheriting explicitness
|
1002 |
13.7.4 |
Pack expansion for function arguments
|
1005 |
11.4.3 |
Qualified name resolution in member functions of class templates
|
1007 |
11.8.5 |
Protected access and pointers to members
|
1008 |
7.6.2.6 |
Querying the alignment of an object
|
1014 |
13.10.3.2 |
Overload resolution between const T& and T&&
|
1026 |
7.2.1 |
Cv-qualified non-class rvalues
|
1040 |
6.9.2 |
Memory model issues
|
1045 |
13.9.3 |
Requiring explicit instantiation declarations
|
1050 |
6.7.4 |
Effects of thread support on object lifetime
|
1053 |
14.5 |
Terminate vs undefined behavior for noexcept violation
|
1058 |
9.4.4 |
Reference binding of incompatible array types
|
1067 |
_N3225_.7.6.5 |
[[hiding]], using-declarations, and multiple inheritance
|
1077 |
_N4868_.9.8.2.3 |
Explicit specializations in non-containing namespaces
|
1078 |
9.4.5 |
Narrowing and the usual arithmetic conversions
|
1084 |
11.4.5.3 |
Conditions for a deleted move function
|
1085 |
11.4.6 |
Move assignment operators and virtual bases
|
1097 |
9.4.2 |
Aggregate initialization of function parameters
|
1108 |
5.13.9 |
User-defined literals have not been implemented
|
1110 |
6.3 |
Incomplete return type should be allowed in decltype operand
|
1118 |
7.5.6.3 |
Implicit lambda capture via explicit copy constructor
|
1124 |
7.6.4 |
Error in description of value category of pointer-to-member expression
|
1132 |
9.12.11 |
Keyword vs attribute for noreturn
|
1141 |
11.4 |
Non-static data member initializers have not been implemented
|
1143 |
11.4.3 |
Move semantics for *this have not been implemented
|
1150 |
_N4527_.12.9 |
Inheriting constructors have not been implemented
|
1162 |
13.8 |
Dependent elaborated-type-specifiers in non-deduced contexts
|
1163 |
13.9.3 |
extern template prevents inlining functions not marked inline
|
1179 |
13.2 |
Cv-qualification of non-type template parameters
|
1217 |
9.5.3 |
Are deleted functions implicitly noexcept?
|
1222 |
9.3.4.5 |
Unnecessary restriction on auto array types
|
1228 |
12.2.2.8 |
Copy-list-initialization and explicit constructors
|
1254 |
6.3 |
odr-use vs template arguments and constexpr functions
|
1259 |
7.6.2.9 |
Deleting a POD via a pointer to base
|
1263 |
9.4.4 |
Mismatch between rvalue reference binding and overload resolution
|
1272 |
11.4.9.3 |
Implicit definition of static data member of const literal type
|
1273 |
13.10.3 |
Accessibility and function signatures
|
1276 |
6.8.2 |
Reference to stdint.h
|
1277 |
17.4.1 |
Lax definition of intmax_t and uintmax_t
|
1280 |
6.7.4 |
Object reallocation and reference members
|
1281 |
13.8.3.2 |
Virtual and dependent base classes
|
1285 |
6.7.4 |
Trivial destructors and object lifetime
|
1289 |
13.8.3.2 |
Can an alias template name the current instantiation?
|
1303 |
13 |
C language linkage for template with internal linkage
|
1314 |
7.6.6 |
Pointer arithmetic within standard-layout objects
|
1316 |
9.2.6 |
constexpr function requirements and class scope
|
1317 |
9.7.1 |
Unnamed scoped enumerations
|
1319 |
13.2 |
Error in pack expansion example
|
1323 |
9.12.1 |
Nonexistent nonterminal in alignment-specifier grammar
|
1325 |
9.1 |
Omitted declarator in friend declarations
|
1334 |
6.8 |
Layout compatibility and cv-qualification
|
1339 |
9.4 |
Parenthesized braced-init-list and arrays
|
1341 |
11.4 |
Bit-field initializers
|
1371 |
13.10.3.6 |
Deduction from T&& in return types
|
1379 |
9.4.5 |
Is std::initializer_list an aggregate?
|
1384 |
7.7 |
reinterpret_cast in constant expressions
|
1386 |
13.10.2 |
Explicitly-specified partial argument list with multiple parameter packs
|
1389 |
9.3.4.6 |
Recursive reference in trailing-return-type
|
1400 |
7.6.10 |
Function pointer equality
|
1407 |
7.7 |
Integral to bool conversion in converted constant expressions
|
1419 |
9.4.5 |
Evaluation order in aggregate initialization
|
1420 |
11.7.4 |
Abstract final classes
|
1421 |
9.4.5 |
Full expressions and aggregate initialization
|
1427 |
11.4.5 |
Default constructor and deleted or inaccessible destructors
|
1429 |
6.4.9 |
Scope of a member template's template parameter
|
1433 |
6.4.2 |
trailing-return-type and point of declaration
|
1434 |
9.4 |
Parenthesized braced-init-list
|
1443 |
9.3.4.7 |
Default arguments and non-static data members
|
1448 |
6.8.2 |
Integral values of type bool
|
1452 |
7.7 |
Value-initialized objects may be constants
|
1461 |
9.4.5 |
Narrowing conversions to bit-fields
|
1470 |
6.9.2 |
Thread migration
|
1474 |
5.13.9 |
User-defined literals and <inttypes.h> format macros
|
1483 |
13.8 |
Non-dependent static_assert-declarations
|
1497 |
9.4.2 |
Aggregate initialization with parenthesized string literal
|
1501 |
9.4.5 |
Nested braces in list-initialization
|
1519 |
13.7.4 |
Conflicting default and variadic constructors
|
1520 |
13.7.8 |
Alias template specialization vs pack expansion
|
1525 |
7.6.1.4 |
Array bound inference in temporary array
|
1540 |
7.7 |
Use of address constants in constant expressions
|
1545 |
13.7.5 |
friend function templates defined in class templates
|
1546 |
13.10.3 |
Errors in function template default arguments
|
1547 |
13.8 |
typename keyword in alias-declarations
|
1555 |
7.6.1.3 |
Language linkage and function type compatibility
|
1564 |
9.2.9.7 |
Template argument deduction from an initializer list
|
1565 |
9.4.5 |
Copy elision and lifetime of initializer_list underlying array
|
1566 |
7.6.2.8 |
Should new std::initializer_list<T> be ill-formed?
|
1574 |
9.5.2 |
Explicitly-defaulted constexpr functions in wrapper templates
|
1577 |
13.7.6.1 |
Unnecessary restrictions on partial specializations
|
1578 |
9.4 |
Value-initialization of aggregates
|
1585 |
7.6.1.5 |
Value category of member access of rvalue reference member
|
1586 |
11.4.7 |
Naming a destructor via decltype
|
1606 |
7.6.2.5 |
sizeof closure class
|
1624 |
14.3 |
Destruction of union members with member initializers
|
1627 |
9.12.2 |
Agreement of dependent alignas specifiers
|
1637 |
9.2.6 |
Recursion in constexpr template default constructor
|
1641 |
11.9.3 |
Assignment in member initializer
|
1643 |
13.2 |
Default arguments for template parameter packs
|
1644 |
13.7.7.2 |
Equivalent exception-specifications in function template declarations
|
1650 |
9.4.4 |
Class prvalues in reference initialization
|
1651 |
6.7.7 |
Lifetime extension of temporary via reference to subobject
|
1661 |
6.9.2 |
Preservation of infinite loops
|
1663 |
7.5.6.3 |
Capturing an empty pack expansion
|
1667 |
14.2 |
Function exiting via exception called by destructor during unwinding
|
1671 |
13.10.3.2 |
Unclear rules for deduction with cv-qualification
|
1675 |
Annex B |
Size limit for automatic array object
|
1678 |
7.6.2.5 |
Naming the type of an array of runtime bound
|
1679 |
8.6.5 |
Range-based for and array of runtime bound
|
1685 |
7.6.2.7 |
Value category of noexcept expression
|
1688 |
9.2.6 |
Volatile constexpr variables
|
1695 |
6.7.7 |
Lifetime extension via init-capture
|
1700 |
13.10.3.2 |
Does the special rvalue-reference deduction apply to alias templates?
|
1703 |
9.11 |
Language linkage of names of functions with internal linkage
|
1714 |
11.6 |
odr-use of this from a local class
|
1720 |
15.3 |
Macro invocation in #include directive
|
1725 |
9.2.9.7 |
Trailing return type with nested function declarator
|
1727 |
13.9.4 |
Type of a specialization of a variable template
|
1731 |
11.4.5.3 |
is_trivially_X and definitions of special member functions
|
1743 |
7.5.6.3 |
init-captures in nested lambdas
|
1745 |
9.2.6 |
thread_local constexpr variable
|
1749 |
6.9.3.2 |
Confusing definition for constant initializer
|
1754 |
13.7.6 |
Declaration of partial specialization of static data member template
|
1761 |
9.3.4.5 |
Runtime check on size of automatic array
|
1768 |
9.3.4.5 |
Zero-element array of runtime bound
|
1783 |
11.4.7 |
Why are virtual destructors non-trivial?
|
1785 |
13.8 |
Conflicting diagnostic requirements for template definitions
|
1792 |
13.9.4 |
Incorrect example of explicit specialization of member enumeration
|
1798 |
14.5 |
exception-specifications of template arguments
|
1826 |
7.7 |
const floating-point in constant expressions
|
1831 |
11.4.5.3 |
Explicitly vs implicitly deleted move constructors
|
1833 |
11.8.4 |
friend declarations naming implicitly-declared member functions
|
1864 |
9.4.5 |
List-initialization of array objects
|
1867 |
9.3.3 |
Function/expression ambiguity with qualified parameter name
|
1869 |
9.11 |
thread_local vs linkage-specifications
|
1871 |
5.13.9 |
Non-identifier characters in ud-suffix
|
1876 |
13.9.4 |
Preventing explicit specialization
|
1879 |
6.7.3 |
Inadequate definition of alignment requirement
|
1904 |
13.2 |
Default template arguments for members of class templates
|
1905 |
13.8.3.2 |
Dependent types and injected-class-names
|
1906 |
6.5.3 |
Name lookup in member friend declaration
|
1917 |
9.7.1 |
decltype-qualified enumeration names
|
1921 |
7.7 |
constexpr constructors and point of initialization of const variables
|
1923 |
7.6.2.2 |
Lvalues of type void
|
1928 |
11.4.5.3 |
Triviality of deleted special member functions
|
1933 |
Annex B |
Implementation limit for initializer-list elements
|
1934 |
14.5 |
Relaxing exception-specification compatibility requirements
|
1947 |
5.13.2 |
Digit separators following non-octal prefix
|
1948 |
6.7.6.5 |
exception-specification of replacement global new
|
1950 |
12.2.4.3 |
Restructuring description of ranks of conversion sequences
|
1957 |
9.2.9.7 |
decltype(auto) with direct-list-initialization
|
1960 |
9.9 |
Visibility of entity named in class-scope using-declaration
|
1964 |
9.2.4 |
opaque-enum-declaration in alias-declaration?
|
1968 |
7.7 |
Address of typeid in constant expressions
|
1970 |
9.3.3 |
Ambiguity resolution for (T())*x
|
1974 |
13.8 |
Redundant specification of non-type typename-specifier
|
1976 |
9.8.3 |
Ambiguity of namespace-aliases
|
1982 |
13.10.2 |
Deduction extending parameter pack
|
1984 |
9.4.5 |
Lossless narrowing conversions
|
1985 |
9.4.2 |
Unknown bound array member with brace-or-equal-initializer
|
1987 |
11.4.9.3 |
constexpr static data members across translation units
|
1998 |
7.2.1 |
Additional sources of xvalue expressions
|
2005 |
7.7 |
Incorrect constexpr reference initialization requirements
|
2014 |
17.6.3.3 |
Unneeded deallocation signatures
|
2030 |
11.8.3 |
Access of injected-class-name with template arguments
|
2034 |
14.6.3 |
Deprecating uncaught_exception()
|
2036 |
9.3 |
Refactoring parameters-and-qualifiers
|
2050 |
9.2.2 |
Consolidate specification of linkage
|
2060 |
9.2.9.7 |
Deduced return type for explicit specialization
|
2078 |
6.5.2 |
Name lookup of mem-initilizer-id
|
2087 |
7.6.7 |
Left shift of negative value by zero bits
|
2111 |
9.4.4 |
Array temporaries in reference binding
|
2119 |
11.7.3 |
Disambiguation of multi-level covariant return type
|
2125 |
11.9.6 |
Copy elision and comma operator
|
2132 |
11.4.5.3 |
Deprecated default generated copy constructors
|
2134 |
_N4567_.5.1.1 |
Objectless references to non-static member functions
|
2135 |
11.9.3 |
mem-initializers for virtual bases of abstract classes
|
2136 |
6.5.4 |
Argument-dependent lookup and initializer lists
|
2138 |
13.9.4 |
Explicit member specialization vs implicit instantiation
|
2139 |
7.3.11 |
Floating-point requirements for integer representation
|
2142 |
6.5.4 |
Missing definition of associated classes and namespaces
|
2152 |
5.13.9 |
Can an alternative token be used as a ud-suffix?
|
2159 |
7.5.6.3 |
Lambda capture and local thread_local variables
|
2161 |
13.9.3 |
Explicit instantiation declaration and “preceding initialization”
|
2178 |
13.2 |
Substitution of dependent template arguments in default template arguments
|
2183 |
14.5 |
Problems in description of potential exceptions
|
2193 |
17.3.5.2 |
numeric_limits<int>::radix and digits
|
2200 |
13.10.2 |
Conversions in template argument deduction
|
2204 |
11.9.3 |
Naming delegated constructors
|
2208 |
11.4 |
static_assert-declaration does not declare a member
|
2209 |
14.3 |
Destruction of constructed array elements
|
2210 |
14.3 |
Principal/target constructor confusion
|
2216 |
14.5 |
Exception specifications in unevaluated contexts
|
2217 |
9.2.6 |
constexpr constructors for non-literal types
|
2225 |
7.6.1.10 |
reinterpret_cast to same floating-point type
|
2230 |
6.6 |
Linkage of extern "C" function in unnamed namespace
|
2231 |
7.6.1.5 |
Class member access to static data member template
|
2238 |
6.7.6.5.2 |
Contradictory alignment requirements for allocation
|
2239 |
7.6.2.9 |
Sized deallocation with a trivial destructor
|
2240 |
6.3 |
this is not odr-used in a constant expression
|
2270 |
13.9.3 |
Non-inline functions and explicit instantiation declarations
|
2274 |
8.5.2 |
Generic lambda capture vs constexpr if
|
2279 |
9.12.1 |
Multiple attribute-specifiers in one attribute-list
|
2286 |
7.6.19 |
Assignment evaluation order
|
2288 |
9.1 |
Contradictory optionality in simple-declaration
|
2302 |
7.6.10 |
Address comparison between different member subobjects
|
2304 |
12.2.4.2 |
Incomplete type vs overload resolution
|
2306 |
13.7.5 |
Nested friend templates of class templates
|
2308 |
9.6 |
Structured bindings and lambda capture
|
2344 |
8.5 |
Redeclaration of names in init-statements
|
2348 |
8.5.2 |
Non-templated constexpr if
|
2349 |
8 |
Class/enumeration names vs conditions
|
2350 |
13.10.3.5 |
Forwarding references and deduction guides
|
2357 |
6.5.3 |
Lookup in member function declarations
|
2363 |
11.8.4 |
Opaque enumeration friend declarations
|
2364 |
7.7 |
Constant expressions, aggregate initialization, and modifications
|
2367 |
6.3 |
Lambdas in default arguments vs the ODR
|
2375 |
11.4.9.3 |
Multiple redeclarations of constexpr static data members
|
2377 |
12.2.3 |
Explicit copy constructor vs function viability
|
2383 |
13.2 |
Variadic member functions of variadic class templates
|
2388 |
9.12.1 |
Applicability of contract-attribute-specifiers
|
2393 |
_N4778_.7.6.1.4 |
Pseudo-destructors and object lifetime
|
2408 |
9.4.2 |
Temporaries and previously-initialized elements in aggregate initialization
|
2415 |
11.4.6 |
using-declarations vs copy assignment operators
|
2423 |
6.1 |
Typedefs, names, and entities
|
2453 |
9.2.9.7.1 |
Deduced return types and coroutine lambdas
|
2454 |
7.6.2.4 |
Tail recursion and coroutine symmetric transfer
|
2472 |
7.6.2.4 |
Value categories in await-expressions
|
2510 |
11.4.1 |
noexcept-specifier of friend function vs class completeness
|
2512 |
7.6.1.8 |
typeid and incomplete class types
|
2524 |
12.2.4.3 |
Distinguishing user-defined conversion sequences by ref-qualifier
|
2527 |
9.12.12 |
Non-class potentially-overlapping objects
|
2548 |
7.6.6 |
Array prvalues and additive operators
|
2567 |
6.5.2 |
Operator lookup ambiguity
|
2655 |
13.9.2 |
Instantiation of default arguments in lambda-expressions
|
2665 |
6.7.4 |
Replacing a subobject with a complete object
|
2709 |
9.4.1 |
Parenthesized initialization of reference-to-aggregate
|
2751 |
8.8 |
Order of destruction for parameters for operator functions
|
2814 |
7.6.1.9 |
Alignment requirement of incomplete class type
|
2893 |
13.9.2 |
Instantiations in discarded if constexpr substatements
|
2925 |
7.6.2.9 |
Deleting a pointer to an incomplete enumeration type
|
2954 |
6.9.2.2 |
Simultaneous modifications of an atomic object
|
Issue |
Section |
Title |
170 |
7.3.13 |
Pointer-to-member conversions
|
233 |
9.4.4 |
References vs pointers in UDC overload resolution
|
453 |
9.3.4.3 |
References may only bind to “valid” objects
|
1038 |
12.3 |
Overload resolution of &x.static_func
|
1223 |
8.9 |
Syntactic disambiguation and trailing-return-types
|
1353 |
11.4.5 |
Array and variant members and deleted special member functions
|
1499 |
11.4.6 |
Missing case for deleted move assignment operator
|
1642 |
7.6 |
Missing requirements for prvalue operands
|
1698 |
5.2 |
Files ending in \
|
1954 |
7.6.1.8 |
typeid null dereference check in subexpressions
|
1973 |
7.5.6.2 |
Which parameter-declaration-clause in a lambda-expression?
|
1997 |
6.7.5 |
Placement new and previous initialization
|
2049 |
13.4.3 |
List initializer in non-type template default argument
|
2054 |
13.10.3 |
Missing description of class SFINAE
|
2102 |
7.6.2.8 |
Constructor checking in new-expression
|
2144 |
9.5.1 |
Function/variable declaration ambiguity
|
2149 |
9.4.2 |
Brace elision and array length deduction
|
2252 |
9.4.5 |
Enumeration list-initialization from the same type
|
2450 |
13.3 |
braced-init-list as a template-argument
|
2459 |
13.4.3 |
Template parameter initialization
|
2476 |
9.2.9.7.1 |
placeholder-type-specifiers and function declarators
|
2485 |
7.3.7 |
Bit-fields in integral promotions
|
2504 |
11.9.4 |
Inheriting constructors from virtual base classes
|
2519 |
6.8.1 |
Object representation of a bit-field
|
2531 |
9.2.6 |
Static data members redeclared as constexpr
|
2533 |
6.7.6 |
Storage duration of implicitly created objects
|
2542 |
7.5.6.2 |
Is a closure type a structural type?
|
2546 |
11.10.4 |
Defaulted secondary comparison operators defined as deleted
|
2547 |
9.5.2 |
Defaulted comparison operator function for non-classes
|
2550 |
9.3.4.3 |
Type "reference to cv void" outside of a declarator
|
2552 |
7.7 |
Constant evaluation of non-defining variable declarations
|
2556 |
8.7.5 |
Unusable promise::return_void
|
2560 |
7.5.8.1 |
Parameter type determination in a requirement-parameter-list
|
2561 |
7.5.6.2 |
Conversion to function pointer for lambda with explicit object parameter
|
2568 |
11.10.1 |
Access checking during synthesis of defaulted comparison operator
|
2570 |
9.5.2 |
Clarify constexpr for defaulted functions
|
2573 |
5.2 |
Undefined behavior when splicing results in a universal-character-name
|
2574 |
5.5 |
Undefined behavior when lexing unmatched quotes
|
2588 |
11.8.4 |
friend declarations and module linkage
|
2591 |
11.5.1 |
Implicit change of active union member for anonymous union in union
|
2595 |
11.4.4 |
"More constrained" for eligible special member functions
|
2600 |
13.8.3.3 |
Type dependency of placeholder types
|
2628 |
12.2.2.9 |
Implicit deduction guides should propagate constraints
|
2634 |
9.2.9.5 |
Avoid circularity in specification of scope for friend class declarations
|
2637 |
11.1 |
Injected-class-name as a simple-template-id
|
2638 |
9.4.5 |
Improve the example for initializing by initializer list
|
2657 |
9.4.4 |
Cv-qualification adjustment when binding reference to temporary
|
2661 |
11.4.1 |
Missing disambiguation rule for pure-specifier vs. brace-or-equal-initializer
|
2663 |
9.9 |
Example for member redeclarations with using-declarations
|
2668 |
7.6.2.4 |
co_await in a lambda-expression
|
2672 |
13.10.3.1 |
Lambda body SFINAE is still required, contrary to intent and note
|
2683 |
9.3.4.7 |
Default arguments for member functions of templated nested classes
|
2689 |
6.8.2 |
Are cv-qualified std::nullptr_t fundamental types?
|
2697 |
13.7.2.3 |
Deduction guides using abbreviated function syntax
|
2698 |
5.13.2 |
Using extended integer types with z suffix
|
2699 |
7.6.18 |
Inconsistency of throw-expression specification
|
2700 |
4.1.1 |
#error disallows existing implementation practice
|
2707 |
13.7.2.3 |
Deduction guides cannot have a trailing requires-clause
|
2708 |
9.4.1 |
Parenthesized initialization of arrays
|
2710 |
7.7 |
Loops in constant expressions
|
2711 |
7.6.18 |
Source for copy-initializing the exception object
|
2712 |
12.2.2.3 |
Simplify restrictions on built-in assignment operator candidates
|
2713 |
9.4.5 |
Initialization of reference-to-aggregate from designated initializer list
|
2714 |
12.2.2.9 |
Implicit deduction guides omit properties from the parameter-declaration-clause of a constructor
|
2715 |
7.6.1.3 |
"calling function" for parameter initialization may not exist
|
2716 |
11.4.8.3 |
Rule about self-or-base conversion is normatively redundant
|
2717 |
13.7.4 |
Pack expansion for alignment-specifier
|
2718 |
7.6.1.9 |
Type completeness for derived-to-base conversions
|
2719 |
6.7.3 |
Creating objects in misaligned storage
|
2720 |
13.8.1 |
Template validity rules for templated entities and alias templates
|
2721 |
6.7.4 |
When exactly is storage reused?
|
2722 |
7.6.2.7 |
Temporary materialization conversion for noexcept operator
|
2723 |
6.8.2 |
Range of representable values for floating-point types
|
2724 |
7.6.7 |
Clarify rounding for arithmetic right shift
|
2725 |
7.6.1.5 |
Overload resolution for non-call of class member access
|
2728 |
7.6.2.9 |
Evaluation of conversions in a delete-expression
|
2729 |
7.6.2.8 |
Meaning of new-type-id
|
2732 |
10.3 |
Can importable headers react to preprocessor state from point of import?
|
2733 |
9.12.9 |
Applying [[maybe_unused]] to a label
|
2745 |
6.3 |
Dependent odr-use in generic lambdas
|
2746 |
13.8.1 |
Checking of default template arguments
|
2747 |
5.2 |
Cannot depend on an already-deleted splice
|
2748 |
7.6.1.5 |
Accessing static data members via null pointer
|
2749 |
7.6.9 |
Treatment of "pointer to void" for relational comparisons
|
2750 |
7.7 |
construct_at without constructor call
|
2753 |
6.7.2 |
Storage reuse for string literal objects and backing arrays
|
2754 |
9.5.4 |
Using *this in explicit object member functions that are coroutines
|
2755 |
7.7 |
Incorrect wording applied by P2738R1
|
2758 |
7.6.2.9 |
What is "access and ambiguity control"?
|
2759 |
11.4.1 |
[[no_unique_address] and common initial sequence
|
2760 |
7.7 |
Defaulted constructor that is an immediate function
|
2761 |
11.4.7 |
Implicitly invoking the deleted destructor of an anonymous union member
|
2762 |
12.2.2.1 |
Type of implicit object parameter
|
2763 |
7.7 |
Ignorability of [[noreturn]] during constant evaluation
|
2764 |
6.4.1 |
Use of placeholders affecting name mangling
|
2768 |
7.6.19 |
Assignment to enumeration variable with a braced-init-list
|
2771 |
11.4.3 |
Transformation for unqualified-ids in address operator
|
2772 |
C.6.4 |
Missing Annex C entry for linkage effects of linkage-specification
|
2775 |
14.2 |
Unclear argument type for copy of exception object
|
2777 |
13.2 |
Type of id-expression denoting a template parameter object
|
2780 |
7.6.1.10 |
reinterpret_cast to reference to function types
|
2783 |
10.4 |
Handling of deduction guides in global-module-fragment
|
2785 |
13.8.3.3 |
Type-dependence of requires-expression
|
2789 |
12.2.4.1 |
Overload resolution with implicit and explicit object member functions
|
2791 |
8.7.4 |
Unclear phrasing about "returning to the caller"
|
2792 |
7.6.2.7 |
Clean up specification of noexcept operator
|
2793 |
6.4.3 |
Block-scope declaration conflicting with parameter name
|
2795 |
6.7.2 |
Overlapping empty subobjects with different cv-qualification
|
2796 |
7.6.9 |
Function pointer conversions for relational operators
|
2798 |
7.7 |
Manifestly constant evaluation of the static_assert message
|
2801 |
9.4.4 |
Reference binding with reference-related types
|
2803 |
12.2.4.2.5 |
Overload resolution for reference binding of similar types
|
2806 |
13.8.1 |
Make a type-requirement a type-only context
|
2807 |
11.4.7 |
Destructors declared consteval
|
2809 |
9.5.2 |
An implicit definition does not redeclare a function
|
2810 |
13.8.1 |
Requiring the absence of diagnostics for templates
|
2811 |
6.9.3.1 |
Clarify "use" of main
|
2813 |
7.6.1.5 |
Class member access with prvalues
|
2818 |
5.11 |
Use of predefined reserved identifiers
|
2820 |
9.4.1 |
Value-initialization and default constructors
|
2822 |
6.7.6.1 |
Side-effect-free pointer zap
|
2823 |
7.6.2.2 |
Implicit undefined behavior when dereferencing pointers
|
2824 |
9.4.1 |
Copy-initialization of arrays
|
2825 |
8.6.5 |
Range-based for statement using a braced-init-list
|
2828 |
7.6.3 |
Ambiguous interpretation of C-style cast
|
2830 |
9.4.5 |
Top-level cv-qualification should be ignored for list-initialization
|
2831 |
9.3.1 |
Non-templated function definitions and requires-clauses
|
2836 |
6.8.6 |
Conversion rank of long double and extended floating-point types
|
2845 |
7.5.6.2 |
Make the closure type of a captureless lambda a structural type
|
2846 |
9.3.4.6 |
Out-of-class definitions of explicit object member functions
|
2848 |
13.9.3 |
Omitting an empty template argument list for explicit instantiation
|
2849 |
6.7.7 |
Parameter objects are not temporary objects
|
2850 |
6.7.6 |
Unclear storage duration for function parameter objects
|
2851 |
7.7 |
Allow floating-point conversions in converted constant expressions
|
2853 |
7.6.6 |
Pointer arithmetic with pointer to hypothetical element
|
2854 |
14.2 |
Storage duration of exception objects
|
2855 |
7.6.1.6 |
Undefined behavior in postfix increment
|
2856 |
12.2.2.8 |
Copy-list-initialization with explicit default constructors
|
2857 |
6.5.4 |
Argument-dependent lookup with incomplete class types
|
2859 |
9.4.1 |
Value-initialization with multiple default constructors
|
2861 |
7.6.1.7 |
dynamic_cast on bad pointer value
|
2864 |
9.4.5 |
Narrowing floating-point conversions
|
2865 |
7.6.16 |
Regression on result of conditional operator
|
2867 |
9.6 |
Order of initialization for structured bindings
|
2869 |
7.5.3 |
this in local classes
|
2870 |
5.13.5 |
Combining absent encoding-prefixes
|
2871 |
11.4.5.2 |
User-declared constructor templates inhibiting default constructors
|
2872 |
6.6 |
Linkage and unclear "can be referred to"
|
2874 |
9.2.9.5 |
Qualified declarations of partial specializations
|
2877 |
9.7.2 |
Type-only lookup for using-enum-declarator
|
2881 |
7.5.6.2 |
Type restrictions for the explicit object parameter of a lambda
|
2882 |
7.6.1.9 |
Unclear treatment of conversion to void
|
2883 |
6.3 |
Definition of "odr-usable" ignores lambda scopes
|
2886 |
6.7.7 |
Temporaries and trivial potentially-throwing special member functions
|
2887 |
C.6.3 |
Missing compatibility entries for xvalues
|
2891 |
Annex B |
Normative status of implementation limits
|
2892 |
7.4 |
Unclear usual arithmetic conversions
|
2895 |
9.4.1 |
Initialization should ignore the destination type's cv-qualification
|
Issue |
Section |
Title |
1 |
9.3.4.7 |
What if two using-declarations refer to the same function but the declarations introduce different default-arguments?
|
20 |
11.4.5.3 |
Some clarifications needed for 12.8 para 15
|
21 |
13.2 |
Can a default argument for a template parameter appear in a friend declaration?
|
22 |
13.8.4 |
Template parameter with a default argument that refers to itself
|
24 |
13.9.4 |
Errors in examples in 14.7.3
|
25 |
14.5 |
Exception specifications and pointers to members
|
30 |
13.3 |
Valid uses of "::template"
|
32 |
13 |
Clarification of explicit instantiation of non-exported templates
|
33 |
6.5.4 |
Argument dependent lookup and overloaded functions
|
35 |
9.4 |
Definition of default-initialization
|
38 |
13.3 |
Explicit template arguments and operator functions
|
40 |
9.3.4 |
Syntax of declarator-id
|
41 |
6.5.3 |
Clarification of lookup of names after declarator-id
|
43 |
6.8 |
Copying base classes (PODs) using memcpy
|
48 |
11.4.9.3 |
Definitions of unused static members
|
49 |
13.2 |
Restriction on non-type, non-value template arguments
|
51 |
12.2.4 |
Overloading and user-defined conversions
|
52 |
7.6.1.5 |
Non-static members, member selection and access checking
|
53 |
7.6.1.9 |
Lvalue-to-rvalue conversion before certain static_casts
|
56 |
9.2.4 |
Redeclaring typedefs within classes
|
59 |
12.2.2.5 |
Clarification of overloading and UDC to reference type
|
64 |
13.9.4 |
Partial ordering to disambiguate explicit specialization
|
65 |
9.3.4.7 |
Typo in default argument example
|
67 |
11.4.9 |
Evaluation of left side of object-expression
|
68 |
9.2.9.5 |
Grammar does not allow "friend class A<int>;"
|
69 |
9.2.2 |
Storage class specifiers on template declarations
|
73 |
7.6.10 |
Pointer equality
|
74 |
7.6.2.8 |
Enumeration value in direct-new-declarator
|
75 |
11.4 |
In-class initialized members must be const
|
76 |
9.2.9.2 |
Are const volatile variables considered "constant expressions"?
|
80 |
11.4 |
Class members with same name as class
|
83 |
12.2.4.3 |
Overloading and deprecated conversion of string literal
|
84 |
12.2.4.2 |
Overloading and conversion loophole used by auto_ptr
|
85 |
6.5.6 |
Redeclaration of member class
|
89 |
6.7.4 |
Object lifetime does not account for reference rebinding
|
90 |
6.5.4 |
Should the enclosing class be an "associated class" too?
|
93 |
6.7.4 |
Missing word in 3.8 basic.life paragraph 2
|
94 |
7.7 |
Inconsistencies in the descriptions of constant expressions
|
98 |
14 |
Branching into try block
|
100 |
13.4.3 |
Clarify why string literals are not allowed as template arguments
|
101 |
9.9 |
Redeclaration of extern "C" names via using-declarations
|
103 |
9.8.4 |
Is it extended-namespace-definition or extension-namespace-definition ?
|
105 |
13 |
Meaning of "template function"
|
108 |
13.8.3.2 |
Are classes nested in templates dependent?
|
116 |
13.7.7.2 |
Equivalent and functionally-equivalent function templates
|
120 |
13.8 |
Nonexistent non-terminal qualified-name
|
121 |
13.8 |
Dependent type names with non-dependent nested-name-specifiers
|
123 |
_N4567_.5.1.1 |
Bad cross-reference
|
126 |
14.5 |
Exception specifications and const
|
127 |
7.6.2.8 |
Ambiguity in description of matching deallocation function
|
128 |
7.6.1.9 |
Casting between enum types
|
131 |
_N2691_.E |
Typo in Lao characters
|
134 |
13 |
Template classes and declarator-ids
|
135 |
9.3.4.6 |
Class type in in-class member function definitions
|
137 |
7.6.1.9 |
static_cast of cv void*
|
142 |
11.8.3 |
Injection-related errors in access example
|
145 |
D.6 |
Deprecation of prefix ++
|
147 |
_N4567_.5.1.1 |
Naming the constructor
|
148 |
11 |
POD classes and pointers to members
|
149 |
7.3.12 |
Accessibility and ambiguity
|
151 |
9.4 |
Terminology of zero-initialization
|
152 |
11.4.8.2 |
explicit copy constructors
|
153 |
12.2.4.3 |
Misleading wording (rank of conversion)
|
159 |
9.3.4 |
Namespace qualification in declarators
|
161 |
11.8.5 |
Access to protected nested type
|
163 |
9.4.2 |
Description of subaggregate initializer
|
164 |
6.5.4 |
Overlap between Koenig and normal lookup
|
166 |
_N4868_.9.8.2.3 |
Friend declarations of template-ids
|
171 |
9.8 |
Global namespace scope
|
173 |
5.3.1 |
Constraints on execution character set
|
176 |
11 |
Name injection and templates
|
178 |
9.4 |
More on value-initialization
|
179 |
7.6.6 |
Function pointers and subtraction
|
181 |
13.10.3.6 |
Errors in template template-parameter example
|
183 |
13.8 |
typename in explicit specializations
|
185 |
11.4.5.3 |
"Named" temporaries and copy elision
|
187 |
13.2 |
Scope of template parameter names
|
188 |
7.6.20 |
Comma operator and rvalue conversion
|
190 |
11.4 |
Layout-compatible POD-struct types
|
193 |
11.4.7 |
Order of destruction of local automatics of destructor
|
194 |
11.4.5 |
Identifying constructors
|
202 |
12.3 |
Use of overloaded function name
|
206 |
_N4868_.13.8.4 |
Semantic constraints on non-dependent names
|
210 |
14.4 |
What is the type matched by an exception handler?
|
213 |
13.8.3 |
Lookup in dependent base classes
|
217 |
9.3.4.7 |
Default arguments for non-template member functions of class templates
|
227 |
8.5 |
How many scopes in an if statement?
|
235 |
11.9.3 |
Assignment vs initialization
|
241 |
13.10.2 |
Error in example in 14.8.1
|
249 |
13.7.2.2 |
What is a member function template?
|
250 |
12.3 |
Address of function template specialization with non-deduced template arguments
|
304 |
9.4 |
Value-initialization of a reference
|
Issue |
Section |
Title |
4 |
9.11 |
Does extern "C" affect the linkage of function names with internal linkage?
|
5 |
9.4 |
CV-qualifiers and type conversions
|
8 |
11.8 |
Access to template arguments used in a function return type and in the nested name specifier
|
9 |
11.8.3 |
Clarification of access to base class members
|
10 |
11.8.8 |
Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?
|
11 |
9.9 |
How do the keywords typename/template interact with using-declarations?
|
16 |
11.8.3 |
Access to members of indirect private base classes
|
28 |
6.9.3.3 |
'exit', 'signal' and static object destruction
|
29 |
9.11 |
Linkage of locally declared functions
|
39 |
6.5.2 |
Conflicting ambiguity rules
|
44 |
13.9.4 |
Member specializations
|
45 |
11.8.8 |
Access to nested classes
|
54 |
7.6.1.9 |
Static_cast from private base to derived class
|
58 |
11.4.10 |
Signedness of bit fields of enum type
|
60 |
12.2.4.2.5 |
Reference binding and valid conversion sequences
|
62 |
13.4.2 |
Unnamed members of classes used as type parameters
|
63 |
13.9.2 |
Class instantiation from pointer conversion to void*, null and self
|
70 |
13.10.3.6 |
Is an array bound a nondeduced context?
|
77 |
11.8.4 |
The definition of friend does not allow nested classes to be friends
|
78 |
9.4 |
Section 8.5 paragraph 9 should state it only applies to non-static objects
|
86 |
6.7.7 |
Lifetime of temporaries in query expressions
|
87 |
14.5 |
Exception specifications on function parameters
|
106 |
unknown |
Creating references to references during template deduction/instantiation
|
112 |
9.3.4.5 |
Array types and cv-qualifiers
|
113 |
7.6.1.3 |
Visibility of called function
|
115 |
12.3 |
Address of template-id
|
118 |
7.6.1.3 |
Calls via pointers to virtual member functions
|
119 |
6.7.4 |
Object lifetime and aggregate initialization
|
122 |
_N4567_.5.1.1 |
template-ids as unqualified-ids
|
124 |
6.7.7 |
Lifetime of temporaries in default initialization of class arrays
|
125 |
_N4567_.5.1.1 |
Ambiguity in friend declaration syntax
|
136 |
9.3.4.7 |
Default arguments and friend declarations
|
139 |
6.5.3 |
Error in friend lookup example
|
140 |
9.3.4.6 |
Agreement of parameter declarations
|
141 |
_N4868_.6.5.6 |
Non-member function templates in member access expressions
|
143 |
6.5.4 |
Friends and Koenig lookup
|
158 |
7.2.1 |
Aliasing and qualification conversions
|
160 |
9.3.3 |
Missing std:: qualification
|
162 |
12.2.2.2 |
(&C::f)() with nonstatic members
|
172 |
9.7.1 |
Unsigned int as underlying type of enum
|
175 |
11 |
Class name injection and base name access
|
177 |
9.4 |
Lvalues vs rvalues in copy-initialization
|
180 |
13.8 |
typename and elaborated types
|
184 |
13.2 |
Default arguments in template template-parameters
|
195 |
7.6.1.10 |
Converting between function and object pointers
|
197 |
13.8.4.2 |
Issues with two-stage lookup of dependent names
|
198 |
11.6 |
Definition of "use" in local and nested classes
|
199 |
6.7.7 |
Order of destruction of temporaries
|
201 |
6.7.7 |
Order of destruction of temporaries in initializers
|
204 |
13 |
Exported class templates
|
207 |
11.8.3 |
using-declarations and protected access
|
208 |
14.2 |
Rethrowing exceptions in nested handlers
|
214 |
13.7.7.3 |
Partial ordering of function templates is underspecified
|
215 |
13.2 |
Template parameters are not allowed in nested-name-specifiers
|
216 |
6.6 |
Linkage of nameless class-scope enumeration types
|
218 |
6.5.4 |
Specification of Koenig lookup
|
220 |
6.7.6.5.3 |
All deallocation functions should be required not to throw
|
221 |
12.4.3.2 |
Must compound assignment operators be member functions?
|
222 |
7 |
Sequence points and lvalue-returning operators
|
224 |
13.8.3.2 |
Definition of dependent names
|
226 |
13.2 |
Default template arguments for function templates
|
228 |
13.3 |
Use of template keyword with non-member templates
|
237 |
13.9.3 |
Explicit instantiation and base class members
|
239 |
12.2.2.2.2 |
Footnote 116 and Koenig lookup
|
244 |
11.4.7 |
Destructor lookup
|
245 |
6.5.6 |
Name lookup in elaborated-type-specifiers
|
246 |
13.4 |
Jumps in function-try-block handlers
|
252 |
11.4.7 |
Looking up deallocation functions in virtual destructors
|
254 |
6.5.6 |
Definitional problems with elaborated-type-specifiers
|
256 |
7.6.2.8 |
Overflow in size calculations
|
258 |
9.9 |
using-declarations and cv-qualifiers
|
259 |
13.9 |
Restrictions on explicit specialization and instantiation
|
261 |
6.3 |
When is a deallocation function "used?"
|
262 |
9.3.4.6 |
Default arguments and ellipsis
|
263 |
11.4.5 |
Can a constructor be declared a friend?
|
270 |
6.9.3.2 |
Order of initialization of static data members of class templates
|
272 |
11.4.7 |
Explicit destructor invocation and qualified-ids
|
273 |
11 |
POD classes and operator&()
|
274 |
6.7.4 |
Cv-qualification and char-alias access to out-of-lifetime objects
|
275 |
13.9.4 |
Explicit instantiation/specialization and using-directives
|
276 |
8.7 |
Order of destruction of parameters and temporaries
|
277 |
9.4 |
Zero-initialization of pointers
|
280 |
12.2.2.2.3 |
Access and surrogate call functions
|
281 |
9.2.3 |
inline specifier in friend declarations
|
283 |
9.2.9.3 |
Template type-parameters are not syntactically type-names
|
284 |
11 |
qualified-ids in class declarations
|
286 |
13.7.6 |
Incorrect example in partial specialization
|
288 |
7.6.2.9 |
Misuse of "static type" in describing pointers
|
289 |
6.3 |
Incomplete list of contexts requiring a complete type
|
291 |
9.4.4 |
Overload resolution needed when binding reference to class rvalue
|
295 |
9.3.4.6 |
cv-qualifiers on function types
|
296 |
11.4.8.3 |
Can conversion functions be static?
|
298 |
6.5.5.2 |
T::x when T is cv-qualified
|
299 |
7.6.2.8 |
Conversion on array bound expression in new
|
300 |
13.10.3.6 |
References to functions in template argument deduction
|
301 |
13.3 |
Syntax for template-name
|
302 |
9.4 |
Value-initialization and generation of default constructor
|
305 |
_N4868_.6.5.6 |
Name lookup in destructor call
|
306 |
6.5.2 |
Ambiguity by class name injection
|
309 |
6.1 |
Linkage of entities whose names are not simply identifiers, in introduction
|
317 |
9.2.3 |
Can a function be declared inline after it has been called?
|
318 |
6.5.5.2 |
struct A::A should not name the constructor of A
|
319 |
6.6 |
Use of names without linkage in declaring entities with linkage
|
320 |
6.7.7 |
Question on copy constructor elision example
|
322 |
13.10.3.4 |
Deduction of reference conversions
|
323 |
13 |
Where must export appear?
|
324 |
7.6.2.2 |
Can "&" be applied to assignment to bit-field?
|
326 |
11.4.5 |
Wording for definition of trivial constructor
|
327 |
11 |
Use of "structure" without definition
|
328 |
11.4 |
Missing requirement that class member types be complete
|
329 |
13.7.5 |
Evaluation of friends of templates
|
331 |
11.4.5 |
Allowed copy constructor signatures
|
335 |
13 |
Allowing export on template members of nontemplate classes
|
336 |
13.9.4 |
Explicit specialization examples are still incorrect
|
337 |
13.10.3 |
Attempt to create array of abtract type should cause deduction to fail
|
339 |
7.7 |
Overload resolution in operand of sizeof in constant expression
|
345 |
13.8 |
Misleading comment on example in templates chapter
|
348 |
6.7.6.5.3 |
delete and user-written deallocation functions
|
349 |
13.10.3.4 |
Template argument deduction for conversion functions and qualification conversions
|
351 |
7 |
Sequence point error: unspecified or undefined?
|
352 |
13.10.3.2 |
Nondeduced contexts
|
353 |
7.6.2.9 |
Is deallocation routine called if destructor throws exception in delete?
|
354 |
13.4.3 |
Null as nontype template argument
|
357 |
3 |
Definition of signature should include name
|
362 |
5.2 |
Order of initialization in instantiation units
|
364 |
12.2.2.2.2 |
Calling overloaded function with static in set, with no object
|
366 |
7.7 |
String literal allowed in integral constant expression?
|
367 |
7.7 |
throw operator allowed in constant expression?
|
368 |
13.10.3 |
Uses of non-type parameters that should cause deduction to fail
|
370 |
15.3 |
Can #include <...> form be used other than for standard C++ headers?
|
372 |
13.4 |
Is access granted by base class specifiers available in following base class specifiers?
|
377 |
9.7.1 |
Enum whose enumerators will not fit in any integral type
|
378 |
8.7 |
Wording that says temporaries are declared
|
379 |
11 |
Change "class declaration" to "class definition"
|
381 |
_N4868_.6.5.6 |
Incorrect example of base class member lookup
|
382 |
13.8 |
Allow typename outside of templates
|
383 |
11 |
Is a class with a declared but not defined destructor a POD?
|
385 |
11.8.5 |
How does protected member check of 11.5 interact with using-declarations?
|
387 |
_N4868_.13.8.6 |
Errors in example in 14.6.5
|
389 |
6.6 |
Unnamed types in entities with linkage
|
390 |
11.7.4 |
Pure virtual must be defined when implicitly called
|
391 |
9.4.4 |
Require direct binding of short-lived references to rvalues
|
392 |
6.7.7 |
Use of full expression lvalue before temporary destruction
|
394 |
15 |
identifier-list is never defined
|
396 |
9.2.3 |
Misleading note regarding use of auto for disambiguation
|
397 |
9.2.3 |
Same address for string literals from default arguments in inline functions?
|
398 |
13.10.3 |
Ambiguous wording on naming a type in deduction
|
400 |
6.5.5.3 |
Using-declarations and the "struct hack"
|
401 |
13.2 |
When is access for template parameter default arguments checked?
|
403 |
6.5.4 |
Reference to a type as a template-id
|
404 |
6.7.4 |
Unclear reference to construction with non-trivial constructor
|
406 |
11.4.9.3 |
Static data member in class with name for linkage purposes
|
409 |
13.8 |
Obsolete paragraph missed by changes for issue 224
|
410 |
13.7.5 |
Paragraph missed in changes for issue 166
|
413 |
11 |
Definition of "empty class"
|
414 |
_N4868_.6.5.6 |
Multiple types found on destructor lookup
|
415 |
13.10.4 |
Template deduction does not cause instantiation
|
416 |
12.2.2.3 |
Class must be complete to allow operator lookup?
|
417 |
11.3 |
Using derived-class qualified name in out-of-class nested class definition
|
420 |
12.4.6 |
postfixexpression->scalar_type_dtor() inconsistent
|
421 |
7.6.1.5 |
Is rvalue.field an rvalue?
|
424 |
9.2.4 |
Wording problem with issue 56 resolution on redeclaring typedefs in class scope
|
425 |
12.5 |
Set of candidates for overloaded built-in operator with float operand
|
427 |
7.6.1.9 |
static_cast ambiguity: conversion versus cast to derived
|
428 |
14.2 |
Mention of expression with reference type
|
429 |
7.6.2.8 |
Matching deallocation function chosen based on syntax or signature?
|
430 |
9.4.2 |
Ordering of expression evaluation in initializer list
|
432 |
6.4.7 |
Is injected class name visible in base class specifier list?
|
433 |
6.4.2 |
Do elaborated type specifiers in templates inject into enclosing namespace scope?
|
436 |
11.4.10 |
Problem in example in 9.6 paragraph 4
|
437 |
11.4 |
Is type of class allowed in member function exception specification?
|
439 |
7.6.1.9 |
Guarantees on casting pointer back to cv-qualified version of original type
|
441 |
6.9.3.2 |
Ordering of static reference initialization
|
442 |
7.6.2.9 |
Incorrect use of null pointer constant in description of delete operator
|
443 |
6.7.7 |
Wording nit in description of lifetime of temporaries
|
446 |
7.6.16 |
Does an lvalue-to-rvalue conversion on the "?" operator produce a temporary?
|
447 |
13.8.3.4 |
Is offsetof type-dependent?
|
450 |
9.4.4 |
Binding a reference to const to a cv-qualified array rvalue
|
451 |
7 |
Expressions with invalid results and ill-formedness
|
452 |
_N4868_.11.4.3.2 |
Wording nit on description of this
|
454 |
11.4.9.3 |
When is a definition of a static data member required?
|
457 |
7.7 |
Wording nit on use of const variables in constant expressions
|
460 |
9.9 |
Can a using-declaration name a namespace?
|
463 |
7.6.1.10 |
reinterpret_cast<T*>(0)
|
464 |
6.7.7 |
Wording nit on lifetime of temporaries to which references are bound
|
466 |
_N4778_.7.6.1.4 |
cv-qualifiers on pseudo-destructor type
|
468 |
13.3 |
Allow ::template outside of templates
|
470 |
13.9.3 |
Instantiation of members of an explicitly-instantiated class template
|
474 |
6.6 |
Block-scope extern declarations in namespace members
|
477 |
9.2.3 |
Can virtual appear in a friend declaration?
|
479 |
14.2 |
Copy elision in exception handling
|
480 |
7.3.13 |
Is a base of a virtual base also virtual?
|
484 |
11.7 |
Can a base-specifier name a cv-qualified class type?
|
485 |
6.1 |
What is a “name”?
|
486 |
13.10.3 |
Invalid return types and template argument deduction
|
488 |
13.10.3 |
Local types, overload resolution, and template argument deduction
|
491 |
9.4.2 |
Initializers for empty-class aggregrate members
|
492 |
7.6.1.8 |
typeid constness inconsistent with example
|
494 |
11.8 |
Problems with the resolution of issue 45
|
497 |
7.6.4 |
Missing required initialization in example
|
500 |
11.8.4 |
Access in base-specifiers of friend and nested classes
|
505 |
5.13.3 |
Conditionally-supported behavior for unknown character escapes
|
506 |
7.6.1.3 |
Conditionally-supported behavior for non-POD objects passed to ellipsis
|
509 |
9.4 |
Dead code in the specification of default initialization
|
510 |
11.9 |
Default initialization of POD classes?
|
513 |
6.7.2 |
Non-class “most-derived” objects
|
514 |
6.5.3 |
Is the initializer for a namespace member in the scope of the namespace?
|
515 |
13.8.3 |
Non-dependent references to base class members
|
516 |
9.2.9.3 |
Use of signed in bit-field declarations
|
517 |
13.7.6.1 |
Partial specialization following explicit instantiation
|
518 |
9.7.1 |
Trailing comma following enumerator-list
|
519 |
7.3.12 |
Null pointer preservation in void* conversions
|
520 |
7.6.3 |
Old-style casts between incomplete class types
|
521 |
6.7.6.5.2 |
Requirements for exceptions thrown by allocation functions
|
522 |
13.10.3.2 |
Array-to-pointer decay in template argument deduction
|
524 |
13.8.3 |
Can function-notation calls to operator functions be dependent?
|
525 |
13.9.2 |
Missing * in example
|
526 |
13.10.3.6 |
Confusing aspects in the specification of non-deduced contexts
|
530 |
7.7 |
Nontype template arguments in constant expressions
|
534 |
13 |
template-names and operator-function-ids
|
537 |
3 |
Definition of “signature”
|
538 |
11 |
Definition and usage
of structure, POD-struct, POD-union,
and POD class
|
540 |
9.8.2 |
Propagation of cv-qualifiers in reference-to-reference collapse
|
543 |
9.4 |
Value initialization and default constructors
|
551 |
13.9.3 |
When is inline permitted in an explicit instantiation?
|
557 |
6.5.4 |
Does argument-dependent lookup cause template instantiation?
|
558 |
5.3.1 |
Excluded characters in universal character names
|
559 |
13.8 |
Editing error in issue 382 resolution
|
568 |
11 |
Definition of POD is too strict
|
582 |
13.7.3 |
Template conversion functions
|
592 |
14.3 |
Exceptions during construction of local static objects
|
594 |
6.7.4 |
Coordinating issues 119 and 404 with delegating constructors
|
603 |
13.6 |
Type equivalence and unsigned overflow
|
606 |
13.10.3.2 |
Template argument deduction for rvalue references
|
613 |
11.4 |
Unevaluated uses of non-static class members
|
614 |
7.6.5 |
Results of integer / and %
|
620 |
11.4 |
Declaration order in layout-compatible POD structs
|
624 |
7.6.2.8 |
Overflow in calculating size of allocation
|
629 |
9.2.9.7 |
auto parsing ambiguity
|
632 |
9.4.2 |
Brace-enclosed initializer for scalar member of aggregate
|
634 |
7.6.1.3 |
Conditionally-supported behavior for non-POD objects passed to ellipsis redux
|
637 |
6.9.1 |
Sequencing rules and example disagree
|
639 |
6.9.1 |
What makes side effects “different” from one another?
|
644 |
6.8 |
Should a trivial class type be a literal type?
|
647 |
9.2.6 |
Non-constexpr instances of constexpr constructor templates
|
648 |
9.2.6 |
Constant expressions in constexpr initializers
|
649 |
6.7.3 |
Optionally ill-formed extended alignment requests
|
651 |
9.2.9.3 |
Problems in decltype specification and examples
|
654 |
7.3.12 |
Conversions to and from nullptr_t
|
659 |
7.6.2.6 |
Alignment of function types
|
660 |
9.7.1 |
Unnamed scoped enumerations
|
661 |
7.6.9 |
Semantics of arithmetic comparisons
|
663 |
_N2691_.E |
Valid Cyrillic identifier characters
|
666 |
13.8 |
Dependent qualified-ids without the typename keyword
|
671 |
7.6.1.9 |
Explicit conversion from a scoped enumeration type to integral type
|
677 |
11.4.7 |
Deleted operator delete and virtual destructors
|
679 |
13.6 |
Equivalence of template-ids and operator function templates
|
681 |
9.3.4.6 |
Restrictions on declarators with late-specified return types
|
683 |
11.4.5.3 |
Requirements for trivial subobject special functions
|
684 |
7.7 |
Constant expressions involving the address of an automatic variable
|
686 |
9.3.2 |
Type declarations/definitions in type-specifier-seqs and type-ids
|
688 |
6.9.3.2 |
Constexpr constructors and static initialization
|
Issue |
Section |
Title |
257 |
11.9.3 |
Abstract base constructors and virtual base initialization
|
374 |
9.3.4 |
Can explicit specialization outside namespace use qualified name?
|
408 |
13.7.2.5 |
sizeof applied to unknown-bound array static data member of template
|
438 |
7 |
Possible flaw in wording for multiple accesses to object between sequence points
|
481 |
6.4 |
Scope of template parameters
|
490 |
6.5.3 |
Name lookup in friend declarations
|
493 |
13.10.3.4 |
Type deduction from a bool context
|
495 |
12.2.4 |
Overload resolution with template and non-template conversion functions
|
499 |
14.2 |
Throwing an array of unknown size
|
527 |
6.6 |
Problems with linkage of types
|
541 |
13.8.3.3 |
Dependent function types
|
542 |
11.9 |
Value initialization of arrays of POD-structs
|
556 |
7.6.19 |
Conflicting requirements for acceptable aliasing
|
561 |
13.8.4.2 |
Internal linkage functions in dependent name lookup
|
564 |
9.11 |
Agreement of language linkage or linkage-specifications?
|
569 |
9.1 |
Spurious semicolons at namespace scope should be allowed
|
570 |
6.3 |
Are references subject to the ODR?
|
571 |
6.6 |
References declared const
|
576 |
9.2.4 |
Typedefs in function definitions
|
587 |
7.6.16 |
Lvalue operands of a conditional expression differing only in cv-qualification
|
588 |
13.8.3 |
Searching dependent bases of classes local to function templates
|
589 |
9.4.4 |
Direct binding of class and array rvalues in reference initialization
|
598 |
6.5.4 |
Associated namespaces of overloaded functions and function templates
|
599 |
7.6.2.9 |
Deleting a null function pointer
|
601 |
15.2 |
Type of literals in preprocessing expressions
|
604 |
12.2.2.4 |
Argument list for overload resolution in copy-initialization
|
608 |
11.7.3 |
Determining the final overrider of a virtual function
|
611 |
9.4 |
Zero-initializing references
|
612 |
6.9.1 |
Requirements on a conforming implementation
|
618 |
15.2 |
Casts in preprocessor conditional expressions
|
625 |
9.2.9.7 |
Use of auto as a template-argument
|
626 |
15.6.3 |
Preprocessor string literals
|
628 |
9.7.1 |
The values of an enumeration with no enumerator
|
630 |
5.3.1 |
Equality of narrow and wide character values in the basic character set
|
633 |
6.1 |
Specifications for variables that should also apply to references
|
638 |
13.7.5 |
Explicit specialization and friendship
|
641 |
12.2.3 |
Overload resolution and conversion-to-same-type operators
|
642 |
6.4.3 |
Definition and use of “block scope” and “local scope”
|
645 |
11.4 |
Are bit-field and non-bit-field members layout compatible?
|
650 |
6.7.7 |
Order of destruction for temporaries bound to the returned value of a function
|
652 |
7.7 |
Compile-time evaluation of floating-point expressions
|
653 |
11.4.6 |
Copy assignment of unions
|
656 |
9.4.4 |
Direct binding to the result of a conversion operator
|
657 |
13.10.3 |
Abstract class parameter in synthesized declaration
|
658 |
7.6.1.10 |
Defining reinterpret_cast for pointer types
|
664 |
9.4.4 |
Direct binding of references to non-class rvalue references
|
665 |
7.6.1.7 |
Problems in the specification of dynamic_cast
|
667 |
11.4.5.3 |
Trivial special member functions that cannot be implicitly defined
|
668 |
14.6.2 |
Throwing an exception from the destructor of a local static object
|
672 |
7.6.2.8 |
Sequencing of initialization in new-expressions
|
680 |
11.4.5.3 |
What is a move constructor?
|
685 |
7.3.7 |
Integral promotion of enumeration ignores fixed underlying type
|
690 |
3 |
The dynamic type of an rvalue reference
|
693 |
7.3.3 |
New string types and deprecated conversion
|
695 |
7 |
Compile-time calculation errors in constexpr functions
|
699 |
9.2.6 |
Must constexpr member functions be defined in the class member-specification?
|
701 |
9.3.4.5 |
When is the array-to-pointer conversion applied?
|
702 |
12.2.4.3 |
Preferring conversion to std::initializer_list
|
703 |
9.4.5 |
Narrowing for literals that cannot be exactly represented
|
704 |
12.2.2.2 |
To which postfix-expressions does overload resolution apply?
|
705 |
6.5.4 |
Suppressing argument-dependent lookup via parentheses
|
707 |
7.3.11 |
Undefined behavior in integral-to-floating conversions
|
710 |
11.9.5 |
Data races during construction
|
711 |
9.2.9.7 |
auto with braced-init-list
|
713 |
9.3.4.6 |
Unclear note about cv-qualified function types
|
714 |
11.4.9.3 |
Static const data members and braced-init-lists
|
715 |
7.7 |
Class member access constant expressions
|
716 |
11.5 |
Specifications that should apply only to non-static union data members
|
717 |
9.2.2 |
Unintentional restrictions on the use of thread_local
|
719 |
6.1 |
Specifications for operator-function-id that should also apply to literal-operator-id
|
720 |
7.5.6 |
Need examples of lambda-expressions
|
721 |
7.7 |
Where must a variable be initialized to be used in a constant expression?
|
722 |
7.6.1.3 |
Can nullptr be passed to an ellipsis?
|
726 |
6.9.2 |
Atomic and non-atomic objects in the memory model
|
730 |
13.9.4 |
Explicit specializations of members of non-template classes
|
731 |
7.6.1.5 |
Omitted reference qualification of member function type
|
732 |
9.5 |
Late-specified return types in function definitions
|
734 |
7.6.1.10 |
Are unique addresses required for namespace-scope variables?
|
735 |
_N4885_6.7.5.5.4 |
Missing case in specification of safely-derived pointers
|
737 |
9.4.3 |
Uninitialized trailing characters in string initialization
|
740 |
6.9.2 |
Incorrect note on data races
|
743 |
_N4567_.5.1.1 |
Use of decltype in a nested-name-specifier
|
744 |
13.4.4 |
Matching template arguments with template template parameters with parameter packs
|
746 |
9.2.9.7 |
Use of auto in new-expressions
|
749 |
12.5 |
References to function types with a cv-qualifier or ref-qualifier
|
750 |
7.5.6.2 |
Implementation constraints on reference-only closure objects
|
751 |
7.5.6.2 |
Deriving from closure classes
|
752 |
7.5.6 |
Name lookup in nested lambda-expressions
|
753 |
7.5.6.3 |
Array names in lambda capture sets
|
754 |
7.5.6 |
Lambda expressions in default arguments of block-scope function declarations
|
756 |
7.5.6.2 |
Dropping cv-qualification on members of closure objects
|
757 |
6.6 |
Types without linkage in declarations
|
759 |
7.5.6.2 |
Destruction of closure objects
|
760 |
_N4567_.5.1.1 |
this inside a nested class of a non-static member function
|
761 |
7.5.6.2 |
Inferred return type of closure object call operator
|
762 |
7.5.6 |
Name lookup in the compound-statement of a lambda expression
|
763 |
7.5.6.2 |
Is a closure object's operator() inline?
|
764 |
7.5.6.3 |
Capturing unused variables in a lambda expression
|
765 |
9.2.3 |
Local types in inline functions with external linkage
|
766 |
7.5.6 |
Where may lambda expressions appear?
|
767 |
7.5.6 |
void and other unnamed lambda-parameters
|
768 |
7.5.6 |
Ellipsis in a lambda parameter list
|
769 |
7.5.6 |
Initialization of closure objects
|
770 |
9.3 |
Ambiguity in late-specified return type
|
771 |
7.5.6.2 |
Move-construction of reference members of closure objects
|
772 |
7.5.6.3 |
capture-default in lambdas in local default arguments
|
774 |
7.5.6.2 |
Can a closure class be a POD?
|
775 |
7.5.6.3 |
Capturing references to functions
|
776 |
6.9.3.3 |
Delegating constructors, destructors, and std::exit
|
777 |
9.3.4.7 |
Default arguments and parameter packs
|
779 |
7.5.6.2 |
Rvalue reference members of closure objects?
|
782 |
7.5.6 |
Lambda expressions and argument-dependent lookup
|
785 |
6.9.1 |
“Execution sequence” is inappropriate phraseology
|
786 |
6.9.2 |
Definition of “thread”
|
787 |
5.2 |
Unnecessary lexical undefined behavior
|
788 |
5.3.1 |
Relationship between locale and values of the execution character set
|
789 |
_N4140_.2.4 |
Deprecating trigraphs
|
790 |
5.13.5 |
Concatenation of raw and non-raw string literals
|
792 |
6.9.3.1 |
Effects of std::quick_exit
|
793 |
6.7.4 |
Use of class members during destruction
|
796 |
7.5.6 |
Lifetime of a closure object with members captured by reference
|
797 |
7.5.6.2 |
Converting a no-capture lambda to a function type
|
799 |
7.6.1.10 |
Can reinterpret_cast be used to cast an operand to its own type?
|
801 |
7.6.1.11 |
Casting away constness in a cast to rvalue reference type
|
803 |
7.6.2.5 |
sizeof an enumeration type with a fixed underlying type
|
804 |
7.6.2.8 |
Deducing the type in new auto(x)
|
805 |
7.6.2.8 |
Which exception to throw for overflow in array size calculation
|
806 |
7.7 |
Enumeration types in integral constant expressions
|
808 |
9.2 |
Non-type decl-specifiers versus max-munch
|
809 |
9.2.2 |
Deprecation of the register keyword
|
810 |
9.2.2 |
Block-scope thread_local variables should be implicitly static
|
811 |
9.2.9.2 |
Unclear implications of const-qualification
|
812 |
9.8.2 |
Duplicate names in inline namespaces
|
814 |
9.12 |
Attribute to indicate that a function throws nothing
|
815 |
9.12.1 |
Parameter pack expansion inside attributes
|
816 |
_N3225_.7.6.4 |
Diagnosing violations of [[final]]
|
817 |
_N3225_.7.6.4 |
Meaning of [[final]] applied to a class definition
|
818 |
9.3.4.6 |
Function parameter packs in non-final positions
|
820 |
13 |
Deprecation of export
|
823 |
13.4.3 |
Literal types with constexpr conversions as non-type template arguments
|
828 |
14.2 |
Destruction of exception objects
|
830 |
14.5 |
Deprecating exception specifications
|
831 |
Annex B |
Limit on recursively nested template instantiations
|
832 |
5.7 |
Value of preprocessing numbers
|
833 |
7.6.1.9 |
Explicit conversion of a scoped enumeration value to a floating type
|
834 |
5.13.5 |
What is an “ordinary string literal”?
|
835 |
7 |
Scoped enumerations and the “usual arithmetic conversions”
|
840 |
13.2 |
Rvalue references as nontype template parameters
|
842 |
7.6.1.10 |
Casting to rvalue reference type
|
845 |
9.5 |
What is the “first declaration” of an explicit specialization?
|
846 |
7.2.1 |
Rvalue references to functions
|
847 |
13.10.3.2 |
Error in rvalue reference deduction example
|
850 |
_N4567_.5.1.1 |
Restrictions on use of non-static data members
|
853 |
_N4885_6.7.5.5.4 |
Support for relaxed pointer safety
|
854 |
7.6.7 |
Left shift and unsigned extended types
|
855 |
7.6.19 |
Incorrect comments in braced-init-list assignment example
|
858 |
7 |
Example binding an rvalue reference to an lvalue
|
861 |
6.5.5.3 |
Unintended ambiguity in inline namespace lookup
|
862 |
9.7.1 |
Undefined behavior with enumerator value overflow
|
863 |
7.6.1 |
Rvalue reference cast to incomplete type
|
865 |
9.4.5 |
Initializing a std::initializer_list
|
869 |
9.4 |
Uninitialized thread_local objects
|
872 |
5.13.5 |
Lexical issues with raw strings
|
874 |
11.4 |
Class-scope definitions of enumeration types
|
876 |
13.10.3.2 |
Type references in rvalue reference deduction specification
|
877 |
12.2.3 |
Viable functions and binding references to rvalues
|
879 |
12.5 |
Missing built-in comparison operators for pointer types
|
880 |
12.5 |
Built-in conditional operator for scoped enumerations
|
882 |
6.9.3.1 |
Defining main as deleted
|
883 |
6.8 |
std::memcpy vs std::memmove
|
884 |
13.9.4 |
Defining an explicitly-specialized static data member
|
886 |
9.4.2 |
Member initializers and aggregates
|
887 |
11.4.5.3 |
Move construction of thrown object
|
888 |
11.9.3 |
Union member initializers
|
891 |
7.6.1.11 |
const_cast to rvalue reference from objectless rvalue
|
896 |
9.4.4 |
Rvalue references and rvalue-reference conversion functions
|
899 |
12.2.2.5 |
Explicit conversion functions in direct class initialization
|
904 |
7.5.6.3 |
Parameter packs in lambda-captures
|
905 |
11 |
Explicit defaulted copy constructors and trivial copyability
|
906 |
9.5 |
Which special member functions can be defaulted?
|
908 |
9.5 |
Deleted global allocation and deallocation functions
|
910 |
11.4.5.3 |
Move constructors and implicitly-declared copy constructors
|
913 |
13.10.3.4 |
Deduction rules for array- and function-type conversion functions
|
915 |
9.5 |
Deleted specializations of member function templates
|
919 |
9.8.2 |
Contradictions regarding inline namespaces
|
920 |
9.3.4 |
Interaction of inline namespaces and using-declarations
|
921 |
9.8.2 |
Unclear specification of inline namespaces
|
922 |
11.4.5 |
Implicit default constructor definitions and const variant members
|
923 |
13.9.4 |
Inline explicit specializations
|
926 |
9.8.2.2 |
Inline unnamed namespaces
|
927 |
11.4.5 |
Implicitly-deleted default constructors and member initializers
|
928 |
9.5 |
Defaulting a function that would be implicitly defined as deleted
|
929 |
13.7.8 |
What is a template alias?
|
930 |
7.6.2.6 |
alignof with incomplete array type
|
931 |
5.13.9 |
Confusing reference to the length of a user-defined string literal
|
932 |
5.13.5 |
UCNs in closing delimiters of raw string literals
|
933 |
5.13.3 |
32-bit UCNs with 16-bit wchar_t
|
934 |
9.4.5 |
List-initialization of references
|
935 |
12.6 |
Missing overloads for character types for user-defined literals
|
936 |
9.4.3 |
Array initialization with new string literals
|
939 |
11.7.3 |
Explicitly checking virtual function overriding
|
940 |
9.2.2 |
Global anonymous unions
|
942 |
6.1 |
Is this an entity?
|
946 |
6.9.3.3 |
Order of destruction of local static objects and calls to std::atexit
|
950 |
9.2.9.3 |
Use of decltype as a class-name
|
951 |
9.12 |
Problems with attribute-specifiers
|
953 |
12.2.4.2.5 |
Rvalue references and function viability
|
955 |
7.5.6.2 |
Can a closure type's operator() be virtual?
|
956 |
9.3.4.6 |
Function prototype scope with late-specified return types
|
957 |
9.12.1 |
Alternative tokens and attribute-tokens
|
959 |
9.12.2 |
Alignment attribute for class and enumeration types
|
960 |
11.7.3 |
Covariant functions and lvalue/rvalue references
|
961 |
12.2.4.3 |
Overload resolution and conversion of std::nullptr_t to bool
|
962 |
9.2.9.5 |
Attributes appertaining to class and enum types
|
963 |
7.6.9 |
Comparing nullptr with 0
|
965 |
9.12.4 |
Limiting the applicability of the carries_dependency attribute
|
966 |
6.6 |
Nested types without linkage
|
968 |
9.12.1 |
Syntactic ambiguity of the attribute notation
|
969 |
13.9.3 |
Explicit instantiation declarations of class template specializations
|
970 |
9.12 |
Consistent use of “appertain” and “apply”
|
973 |
14.5 |
Function types in exception-specifications
|
976 |
13.10.3.4 |
Deduction for const T& conversion operators
|
978 |
12.2.4.2 |
Incorrect specification for copy initialization
|
979 |
9.3 |
Position of attribute-specifier in declarator syntax
|
980 |
13.9.3 |
Explicit instantiation of a member of a class template
|
983 |
7.6.2.2 |
Ambiguous pointer-to-member constant
|
984 |
9.2.9.7 |
“Deduced type” is unclear in auto type deduction
|
986 |
9.8.4 |
Transitivity of using-directives versus qualified lookup
|
988 |
9.2.9.3 |
Reference-to-reference collapsing with decltype
|
989 |
9.4.5 |
Misplaced list-initialization example
|
990 |
9.4.5 |
Value initialization with multiple initializer-list constructors
|
991 |
9.2.6 |
Reference parameters of constexpr functions and constructors
|
995 |
13.9.3 |
Incorrect example for using-declaration and explicit instantiation
|
999 |
12.2 |
“Implicit” or “implied” object argument/parameter?
|
1000 |
6.5.5.2 |
Mistaking member typedefs for constructors
|
1010 |
7.7 |
Address of object with dynamic storage duration in constant expression
|
Issue |
Section |
Title |
96 |
13.3 |
Syntactic disambiguation using the template keyword
|
248 |
_N2691_.E |
Identifier characters
|
341 |
9.11 |
extern "C" namespace member function versus global variable
|
355 |
11 |
Global-scope :: in nested-name-specifier
|
373 |
6.5.7 |
Lookup on namespace qualified name in using-directive
|
407 |
9.2.4 |
Named class with associated typedef: two names or one?
|
431 |
13.3 |
Defect in wording in 14.2
|
448 |
13.8.2 |
Set of template functions in call with dependent explicit argument
|
458 |
13.8.2 |
Hiding of member template parameters by other members
|
475 |
14.6.3 |
When is std::uncaught_exception() true? (take 2)
|
502 |
13.8.3.2 |
Dependency of nested enumerations and enumerators
|
508 |
9.4 |
Non-constructed value-initialized objects
|
531 |
13.9.4 |
Defining members of explicit specializations
|
532 |
13.7.7.3 |
Member/nonmember operator template partial ordering
|
546 |
13.9.3 |
Explicit instantiation of class template members
|
547 |
9.3.4.6 |
Partial specialization on member function types
|
572 |
7.3 |
Standard conversions for non-built-in types
|
573 |
7.6.1.10 |
Conversions between function pointers and void*
|
575 |
13.10.3 |
Criteria for deduction failure
|
580 |
11.8 |
Access in template-parameters of member and friend definitions
|
590 |
13.8.3.2 |
Nested classes and the “current instantiation”
|
602 |
13.8.2 |
When is the injected-class-name of a class template a template?
|
605 |
13.9.4 |
Linkage of explicit specializations
|
615 |
9.4 |
Incorrect description of variables that can be initialized
|
619 |
6.8 |
Completeness of array types
|
621 |
13.9.4 |
Template argument deduction from function return types
|
655 |
11.9.3 |
Initialization not specified for forwarding constructors
|
674 |
13.7.5 |
“matching specialization” for a friend declaration
|
676 |
6.2 |
static_assert-declarations and general requirements for declarations
|
678 |
6.3 |
Language linkage of member function parameter types and the ODR
|
691 |
13.2 |
Template parameter packs in class template partial specializations
|
692 |
13.10.3.6 |
Partial ordering of variadic class template partial specializations
|
694 |
9.4 |
Zero- and value-initialization of union objects
|
696 |
11.6 |
Use of block-scope constants in local classes
|
700 |
9.2.6 |
Constexpr member functions of class templates
|
709 |
13.10.3 |
Enumeration names as nested-name-specifiers in deduction failure
|
738 |
11.4.5 |
constexpr not permitted by the syntax of constructor declarations
|
741 |
11.4.10 |
“plain” long long bit-fields
|
758 |
6.2 |
Missing cases of declarations that are not definitions
|
773 |
13.4.3 |
Parentheses in address non-type template arguments
|
778 |
13.2 |
Template parameter packs in non-type template parameters
|
784 |
4.2 |
List of incompatibilities with the previous Standard
|
798 |
7.6.1.2 |
Overloaded subscript operator described in clause 5
|
837 |
9.2.6 |
Constexpr functions and return braced-init-list
|
838 |
11.9.3 |
Use of this in a brace-or-equal-initializer
|
860 |
9.2.6 |
Explicit qualification of constexpr member functions
|
864 |
8.6.5 |
braced-init-list in the range-based for statement
|
873 |
13.10.3.6 |
Deducing rvalue references in declarative contexts
|
892 |
9.2.6 |
Missing requirements for constexpr constructors
|
898 |
9.2.6 |
Declarations in constexpr functions
|
924 |
11.4 |
alias-declaration as a class member
|
938 |
9.4.2 |
Initializer lists and array new
|
941 |
13.9.4 |
Explicit specialization of deleted function template
|
945 |
_N4567_.5.1.1 |
Use of this in a late-specified return type
|
948 |
8.5 |
constexpr in conditions
|
964 |
7.2.1 |
Incorrect description of when the lvalue-to-rvalue conversion applies
|
971 |
14.4 |
Incorrect treatment of exception-declarations
|
972 |
9.12.1 |
Allowing multiple attribute-specifiers
|
981 |
6.8 |
Constexpr constructor templates and literal types
|
985 |
5.9 |
Alternative tokens and user-defined literals
|
993 |
13.8.4.1 |
Freedom to perform instantiation at the end of the translation unit
|
994 |
9.3.4.6 |
braced-init-list as a default argument
|
996 |
13.7.6 |
Ambiguous partial specializations of member class templates
|
997 |
6.5.4 |
Argument-dependent lookup and dependent function template parameter types
|
1004 |
13.8.2 |
Injected-class-names as arguments for template template parameters
|
1006 |
13.2 |
std::nullptr_t as a non-type template parameter
|
1009 |
13 |
Missing cases in the declarator-id of a function template declaration
|
1011 |
7.6.1.9 |
Standard conversions that cannot be inverted
|
1012 |
9.8.2.2 |
Undeprecating static
|
1015 |
6.5.4 |
Template arguments and argument-dependent lookup
|
1016 |
12 |
Overloadable declarations, function templates, and references
|
1017 |
11.4.3 |
Member access transformation in unevaluated operands
|
1018 |
9.1 |
Ambiguity between simple-declaration and attribute-declaration
|
1020 |
11.4.5.3 |
Implicitly-defined copy constructors and explicit base class constructors
|
1022 |
9.7.1 |
Can an enumeration variable have values outside the values of the enumeration?
|
1025 |
13.4.3 |
Use of a reference as a non-type template argument
|
1029 |
11.4.7 |
Type of a destructor call
|
1030 |
9.4.2 |
Evaluation order in initializer-lists used in aggregate initialization
|
1031 |
9.12.1 |
Optional elements in attributes
|
1032 |
13.7.4 |
Empty pack expansions
|
1033 |
9.12.2 |
Restrictions on alignment attributes
|
1034 |
7.5.6 |
Attributes for return statements in lambdas
|
1035 |
11.4 |
Omitted and required decl-specifiers
|
1036 |
9.12.2 |
Alignment attribute in an exception-declaration
|
1037 |
7.6.2.9 |
Requirements for operands of delete-expressions and deallocation functions
|
1042 |
9.1 |
Attributes in alias-declarations
|
1043 |
13.8.3.2 |
Qualified name lookup in the current instantiation
|
1044 |
6.4.2 |
Point of declaration for an alias-declaration
|
1047 |
13.8.3.4 |
When is typeid value-dependent?
|
1051 |
11.4.5.3 |
Reference members and generated copy constructors
|
1054 |
8.3 |
Lvalue-to-rvalue conversions in expression statements
|
1055 |
6.8.2 |
Permissible uses of void
|
1056 |
13.7.8 |
Template aliases, member definitions, and the current instantiation
|
1057 |
13.8.3.2 |
decltype and the current instantiation
|
1060 |
7.7 |
Scoped enumerators in integral constant expressions
|
1061 |
7.6.2.8 |
Negative array bounds in a new-expression
|
1062 |
7.5.6 |
Syntax of attribute-specifiers in lambdas
|
1063 |
_N3225_.7.6.5 |
[[hiding]] with non-attribute declarations
|
1064 |
11.4.5.3 |
Defaulted move constructor for a union
|
1065 |
_N3225_.7.6.5 |
[[hiding]] with [[override]]
|
1066 |
11.4.6 |
When is a copy/move assignment operator implicitly defined?
|
1068 |
13.2 |
Template aliases with default arguments and template parameter packs
|
1069 |
9.3.4.6 |
Incorrect function type with trailing-return-type
|
1070 |
9.4.2 |
Missing initializer clauses in aggregate initialization
|
1071 |
6.8 |
Literal class types and trivial default constructors
|
1072 |
11.4 |
Scoped enumerator with the same name as its containing class
|
1073 |
14.5 |
Merging dynamic-exception-specifications and noexcept-specifications
|
1074 |
13.8.3.4 |
Value-dependent noexcept-expressions
|
1075 |
9.2.9.3 |
Grammar does not allow template alias in type-name
|
1079 |
12.2.4.3 |
Overload resolution involving aggregate initialization
|
1080 |
11.4.5.3 |
Confusing relationship between templates and copy constructors
|
1081 |
11.4.7 |
Defaulted destructor and unusable operator delete
|
1082 |
11.4.5.3 |
Implicit copy function if subobject has none?
|
1083 |
7.6.1.3 |
Passing an object to ellipsis with non-trivial move constructor
|
1086 |
7.6.1.11 |
const_cast to rvalue reference to function type
|
1087 |
12.2.2.5 |
Additional applications of issue 899
|
1088 |
13.8.3.4 |
Dependent non-type template arguments
|
1090 |
6.7.3 |
Alignment of subobjects
|
1091 |
7.6.4 |
Inconsistent use of the term “object expression”
|
1094 |
7.6.1.9 |
Converting floating-point values to scoped enumeration types
|
1095 |
9.4.5 |
List-initialization of references
|
1096 |
13 |
Missing requirement for template definitions
|
1098 |
7.7 |
Pointer conversions in constant expressions
|
1099 |
7.7 |
Infinite recursion in constexpr functions
|
1100 |
7.7 |
constexpr conversion functions and non-type template arguments
|
1101 |
11.4.9.3 |
Non-integral initialized static data members
|
1102 |
6.9.1 |
Better example of undefined behavior
|
1103 |
5.2 |
Reversion of phase 1 and 2 transformations in raw string literals
|
1104 |
5.9 |
Global-scope template arguments vs the <: digraph
|
1105 |
5.11 |
Issues relating to TR 10176:2003
|
1106 |
5.13.8 |
Need more detail in nullptr keyword description
|
1107 |
5.13.9 |
Overload resolution for user-defined integer literals
|
1109 |
6.3 |
When is “use” a reference to the ODR meaning?
|
1111 |
_N4868_.6.5.6 |
Remove dual-scope lookup of member template names
|
1112 |
6.6 |
constexpr variables should have internal linkage like const
|
1113 |
6.6 |
Linkage of namespace member of unnamed namespace
|
1114 |
6.7.4 |
Incorrect use of placement new in example
|
1115 |
6.7.3 |
C-compatible alignment specification
|
1117 |
7 |
Incorrect note about xvalue member access expressions
|
1119 |
7.6.1.5 |
Missing case in description of member access ambiguity
|
1120 |
7.6.1.10 |
reinterpret_cast and void*
|
1121 |
7.6.2.2 |
Unnecessary ambiguity error in formation of pointer to member
|
1122 |
7.6.2.5 |
Circular definition of std::size_t
|
1123 |
7.6.2.7 |
Destructors should be noexcept by default
|
1125 |
7.7 |
Unclear definition of “potential constant expression”
|
1126 |
7.7 |
constexpr functions in const initializers
|
1127 |
7.7 |
Overload resolution in constexpr functions
|
1128 |
9.2 |
attribute-specifiers in decl-specifier-seqs
|
1129 |
9.2.6 |
Default nothrow for constexpr functions
|
1130 |
9.2.9.3 |
Function parameter type adjustments and decltype
|
1131 |
9.2.9.5 |
Template aliases in elaborated-type-specifiers
|
1133 |
_N3225_.7.6.5 |
Keywords vs attributes for control of hiding and overriding
|
1134 |
9.5.2 |
When is an explicitly-defaulted function defined?
|
1135 |
9.5.2 |
Explicitly-defaulted non-public special member functions
|
1136 |
9.5.2 |
Explicitly-defaulted explicit constructors
|
1137 |
9.5.2 |
Explicitly-defaulted virtual special member functions
|
1138 |
9.4.4 |
Rvalue-ness check for rvalue reference binding is wrong
|
1139 |
9.4.4 |
Rvalue reference binding to scalar xvalues
|
1140 |
11 |
Incorrect redefinition of POD class
|
1142 |
11.4.2 |
friend declaration of member function of containing class
|
1144 |
_N3225_.11.3 |
Remove access declarations
|
1145 |
11.4.5 |
Defaulting and triviality
|
1146 |
11.4.7 |
exception-specifications of defaulted functions
|
1147 |
11.4.7 |
Destructors should be default nothrow
|
1148 |
11.9.6 |
Copy elision and move construction of function parameters
|
1149 |
11.4.5.3 |
Trivial non-public copy operators in subobjects
|
1151 |
12.2.2.8 |
Overload resolution with initializer-list and non-list constructors
|
1152 |
12.2.3 |
Rules for determining existence of implicit conversion sequence
|
1153 |
12.3 |
Type matching in address of overloaded function
|
1154 |
13.4.3 |
Address of thread_local variable as non-type template argument
|
1155 |
13.4.3 |
Internal-linkage non-type template arguments
|
1156 |
13.7.7.3 |
Partial ordering in a non-call context
|
1158 |
13.7.8 |
Recursive instantiation via alias template
|
1159 |
13.7.8 |
Class and enumeration definitions in template aliases
|
1160 |
13.8.3.2 |
Definitions of template members and the current instantiation
|
1161 |
13.8 |
Dependent nested-name-specifier in a pointer-to-member declarator
|
1164 |
13.10.3.2 |
Partial ordering of f(T&) and f(T&&)
|
1165 |
14.3 |
Exceptions when destroying array elements
|
1166 |
14.4 |
exception-declarations that do not declare objects
|
1167 |
14.5 |
function-try-blocks for destructors
|
1168 |
14.6.2 |
Additional reasons to call std::terminate
|
1169 |
15.11 |
Missing feature macro for strict pointer safety
|
1170 |
13.10.3 |
Access checking during template argument deduction
|
1171 |
14.6.2 |
Partial stack unwinding with noexcept violation
|
1173 |
6.9.1 |
Unclear specification of effects of signal handling
|
1174 |
6.3 |
When is a pure virtual function “used?”
|
1175 |
5.13.9 |
Disambiguating user-defined literals
|
1176 |
6.9.2 |
Definition of release sequence
|
1177 |
6.9.2 |
Intra-thread dependency-ordered-before
|
1178 |
13.10.3.7 |
Deduction failure matching placement new
|
1180 |
6.7.3 |
Over-aligned class types
|
1181 |
6.8 |
What is a “built-in type?”
|
1182 |
13.7.4 |
Incorrect description of pack expansion syntax
|
1183 |
9.3.4.6 |
Expansion of parameter packs in declarators
|
1184 |
13.10.3.2 |
Argument conversions to nondeduced parameter types
|
1185 |
9.11 |
Misleading description of language linkage and member function types
|
1186 |
9.2.6 |
Non-dependent constexpr violations in function templates
|
1187 |
6.9.3.2 |
Problems in initialization example
|
1188 |
7.7 |
Type punning in constant expressions
|
1189 |
6.7.2 |
Address of distinct base class subobjects
|
1190 |
_N4885_6.7.5.5.4 |
Operations on non-safely-derived pointers
|
1191 |
11.4.5 |
Deleted subobject destructors and implicitly-defined constructors
|
1192 |
6.3 |
Inadvertent change to ODR and templates
|
1193 |
7.7 |
Use of address-constant pointers in constant expressions
|
1194 |
9.2.6 |
Constexpr references
|
1195 |
9.2.6 |
References to non-literal types in constexpr functions
|
1196 |
13.9.3 |
Definition required for explicit instantiation after explicit specialization?
|
1197 |
7.7 |
Constexpr arrays
|
1198 |
6.8 |
Literal types and copy constructors
|
1199 |
9.2.6 |
Deleted constexpr functions
|
1201 |
6.2 |
Are deleted and defaulted functions definitions?
|
1202 |
11.9.5 |
Calling virtual functions during destruction
|
1204 |
8.6 |
Specifiers in a for-range-declaration
|
1206 |
13.7.2 |
Defining opaque enumeration members of class templates
|
1207 |
11.4.3 |
Type of class member in trailing-return-type
|
1208 |
11.4.3 |
Explicit noexcept in defaulted definition
|
1210 |
6.4.2 |
Injection of elaborated-type-specifier in enumeration scope
|
1212 |
9.2.9.3 |
Non-function-call xvalues and decltype
|
1214 |
9.4 |
Kinds of initializers
|
1215 |
11 |
Definition of POD struct
|
1216 |
14.5 |
Exceptions “allowed” by a noexcept-specification
|
1218 |
14.4 |
What is the “currently-handled exception” in a multi-threaded program?
|
1219 |
6.8 |
Non-static data member initializers in constant expressions
|
1220 |
_N4868_.6.5.6 |
Looking up conversion-type-ids
|
1224 |
11.4.5.3 |
constexpr defaulted copy constructors
|
1225 |
9.2.6 |
constexpr constructors and virtual bases
|
1229 |
12.2.2.8 |
Overload resolution with empty braced-init-list argument
|
1231 |
13.7.4 |
Variadic templates requiring an empty pack expansion
|
1232 |
9.4.5 |
Creation of array temporaries using a braced-init-list
|
1233 |
13.8.3 |
Pack expansions and dependent calls
|
1234 |
9.3.2 |
abstract-declarator does not permit ... after ptr-operator
|
1235 |
13.7.7.3 |
“Unused” ellipsis and default arguments in partial ordering
|
1236 |
9.4.4 |
Inconsistently-interrelated examples
|
1237 |
6.7.7 |
Deprecated implicit copy assignment in example
|
1238 |
12.2.4.3 |
Overloading ambiguity binding reference to function
|
1239 |
5.13.9 |
Hexadecimal floating-point literals vs user-defined literals
|
1240 |
9.3.2 |
constexpr defaulted constructors
|
1241 |
11.4.7 |
Which members does a destructor destroy?
|
1242 |
11.9.3 |
Initializing variant class members
|
1243 |
9.3 |
Misleading footnote regarding multiple-declarator declarations
|
1244 |
13.6 |
Equivalence of alias templates and class templates
|
1245 |
13.7.2.2 |
Matching declarations involving decltype
|
1246 |
13.2 |
Non-deduced non-final parameter packs
|
Issue |
Section |
Title |
129 |
6.9.1 |
Stability of uninitialized auto variables
|
223 |
Annex D |
The meaning of deprecation
|
240 |
7.3.2 |
Uninitialized values and undefined behavior
|
292 |
7.6.2.8 |
Deallocation on exception in new before arguments evaluated
|
312 |
6.7.6.5.3 |
“use” of invalid pointer value not defined
|
332 |
9.3.4.6 |
cv-qualified void parameter types
|
342 |
7.6.2 |
Terminology: "indirection" versus "dereference"
|
344 |
11.4.7 |
Naming destructors
|
388 |
14.4 |
Catching base*& from a throw of derived*
|
462 |
6.7.7 |
Lifetime of temporaries bound to comma expressions
|
482 |
9.3.4 |
Qualified declarators in redeclarations
|
483 |
6.8.2 |
Normative requirements on integral ranges
|
496 |
6.8 |
Is a volatile-qualified type really a POD?
|
535 |
11.4.5.3 |
Copy construction without a copy constructor
|
539 |
9.2.9 |
Constraints on type-specifier-seq
|
565 |
9.9 |
Conflict rules for using-declarations naming function templates
|
577 |
9.3.4.6 |
void in an empty parameter list
|
583 |
7.6.9 |
Relational pointer comparisons against the null pointer constant
|
597 |
6.7.4 |
Conversions applied to out-of-lifetime non-POD lvalues
|
616 |
3 |
Definition of “indeterminate value”
|
623 |
6.7.6.5.3 |
Use of pointers to deallocated storage
|
631 |
8.5.2 |
Jumping into a “then” clause
|
675 |
11.4.10 |
Signedness of bit-field with typedef or template parameter type
|
712 |
6.3 |
Are integer constant operands of a conditional-expression “used?”
|
729 |
14.4 |
Qualification conversions and handlers of reference-to-pointer type
|
739 |
11.4.10 |
Signedness of plain bit-fields
|
755 |
7.5.6.3 |
Generalized lambda-captures
|
903 |
13.8.3.4 |
Value-dependent integral null pointer constants
|
912 |
5.13.3 |
Character literals and universal-character-names
|
974 |
7.5.6 |
Default arguments for lambdas
|
975 |
7.5.6 |
Restrictions on return type deduction for lambdas
|
977 |
9.7.1 |
When is an enumeration type complete?
|
1003 |
6.9.3.1 |
Acceptable definitions of main
|
1013 |
7.3.2 |
Uninitialized std::nullptr_t objects
|
1024 |
5.13.3 |
Limits on multicharacter literals
|
1048 |
7.5.6 |
auto deduction and lambda return type deduction.
|
1059 |
6.8.5 |
Cv-qualified array types (with rvalues)
|
1093 |
9.4 |
Value-initializing non-objects
|
1213 |
7.6.1.2 |
Array subscripting and xvalues
|
1226 |
9.3.4.7 |
Converting a braced-init-list default argument
|
1227 |
13.10.3 |
Mixing immediate and non-immediate contexts in deduction failure
|
1250 |
11.7.3 |
Cv-qualification of incomplete virtual function return types
|
1251 |
_N4750_.C.1.3 |
C compatibility: casting to unqualified void*
|
1260 |
6.3 |
Incorrect use of term “overloaded” in description of odr-use
|
1261 |
7 |
Explicit handling of cv-qualification with non-class prvalues
|
1262 |
13.10.3 |
Default template arguments and deduction failure
|
1264 |
7.7 |
Use of this in constexpr constructor
|
1265 |
9.2.9.7 |
Mixed use of the auto specifier
|
1267 |
14.5 |
Rvalue reference types in exception-specifications
|
1268 |
7.6.1.10 |
reinterpret_cast of an xvalue operand
|
1269 |
7.6.1.7 |
dynamic_cast of an xvalue operand
|
1270 |
9.4.5 |
Brace elision in array temporary initialization
|
1275 |
13.2 |
Incorrect comment in example of template parameter pack restriction
|
1282 |
14.5 |
Underspecified destructor exception-specification
|
1288 |
9.4.5 |
Reference list initialization
|
1290 |
9.4.5 |
Lifetime of the underlying array of an initializer_list member
|
1293 |
7.7 |
String literals in constant expressions
|
1295 |
9.4.4 |
Binding a reference to an rvalue bit-field
|
1296 |
13.8 |
Ill-formed template declarations (not just definitions)
|
1297 |
9.3 |
Misplaced function attribute-specifier
|
1298 |
12.2.4.3 |
Incorrect example in overload resolution
|
1301 |
9.4 |
Value initialization of union
|
1302 |
6.8.2 |
noexcept applied to expression of type void
|
1305 |
7.6.2.6 |
alignof applied to array of unknown size
|
1306 |
_N4868_.11.4.3.2 |
Modifying an object within a const member function
|
1308 |
11.4 |
Completeness of class type within an exception-specification
|
1310 |
6.5.5.2 |
What is an “acceptable lookup result?”
|
1311 |
7.7 |
Volatile lvalues in constant expressions
|
1312 |
7.7 |
Simulated reinterpret_cast in constant expressions
|
1313 |
7.7 |
Undefined pointer arithmetic in constant expressions
|
1318 |
11 |
Syntactic ambiguities with final
|
1320 |
7.6.1.9 |
Converting scoped enumerations to bool
|
1321 |
13.7.7.2 |
Equivalency of dependent calls
|
1324 |
9.4 |
Value initialization and defaulted constructors
|
1327 |
9.5.2 |
virt-specifier in a defaulted definition
|
1328 |
9.4.4 |
Conflict in reference binding vs overload resolution
|
1329 |
Annex B |
Recursive deduction substitutions
|
1330 |
13.10.3 |
Delayed instantiation of noexcept specifiers
|
1333 |
9.5.2 |
Omission of const in a defaulted copy constructor
|
1336 |
11.4.8.2 |
Definition of “converting constructor”
|
1340 |
7.6.4 |
Complete type in member pointer expressions
|
1345 |
11.9.3 |
Initialization of anonymous union class members
|
1346 |
9.2.9.7 |
expression-list initializers and the auto specifier
|
1347 |
9.2.9.7 |
Consistency of auto in multiple-declarator declarations
|
1350 |
_N4527_.12.9 |
Incorrect exception specification for inherited constructors
|
1352 |
6.4.7 |
Inconsistent class scope and completeness rules
|
1354 |
7.6.2.7 |
Destructor exceptions for temporaries in noexcept expressions
|
1355 |
9.5.2 |
Aggregates and “user-provided” constructors
|
1357 |
11.4 |
brace-or-equal-initializers for function and typedef members
|
1358 |
9.2.6 |
Unintentionally ill-formed constexpr function template instances
|
1359 |
9.2.6 |
constexpr union constructors
|
1361 |
6.8 |
Requirement on brace-or-equal-initializers of literal types
|
1362 |
6.3 |
Complete type required for implicit conversion to T&
|
1363 |
11 |
Triviality vs multiple default constructors
|
1364 |
7.7 |
constexpr function parameters
|
1365 |
7.7 |
Calling undefined constexpr functions
|
1366 |
9.2.6 |
Deleted constexpr constructors and virtual base classes
|
1367 |
7.7 |
Use of this in a constant expression
|
1368 |
9.4 |
Value initialization and defaulted constructors (part 2)
|
1369 |
9.2.6 |
Function invocation substitution of this
|
1370 |
15.6 |
identifier-list cannot contain ellipsis
|
1372 |
13.10.3.4 |
Cross-references incorrect in conversion function template argument deduction
|
1374 |
12.2.4.3 |
Qualification conversion vs difference in reference binding
|
1375 |
11.5 |
Reference to anonymous union?
|
1380 |
9.3.4.6 |
Type definitions in template-parameter parameter-declarations
|
1381 |
14.5 |
Implicitly-declared special member functions and default nothrow
|
1382 |
9.3 |
Dead code for constructor names
|
1383 |
7 |
Clarifying discarded-value expressions
|
1385 |
12.2.2.3 |
Syntactic forms of conversion functions for surrogate call functions
|
1387 |
13.10.3.6 |
Missing non-deduced context for decltype
|
1388 |
13.10.3.2 |
Missing non-deduced context following a function parameter pack
|
1392 |
12.2.2.7 |
Explicit conversion functions for references and non-references
|
1394 |
9.3.4.6 |
Incomplete types as parameters of deleted functions
|
1398 |
13.4.3 |
Non-type template parameters of type std::nullptr_t
|
1399 |
13.10.3.2 |
Deduction with multiple function parameter packs
|
1401 |
9.4.4 |
Similar types and reference compatibility
|
1402 |
11.4.5.3 |
Move functions too often deleted
|
1405 |
6.8 |
constexpr and mutable members of literal types
|
1406 |
13.7.7.3 |
ref-qualifiers and added parameters of non-static member function templates
|
1408 |
12.2.4.3 |
What is “the same aggregate initialization?”
|
1409 |
12.2.4.2.6 |
What is the second standard conversion sequence of a list-initialization sequence?
|
1410 |
12.2.4.3 |
Reference overload tiebreakers should apply to rvalue references
|
1411 |
11 |
More on global scope :: in nested-name-specifier
|
1412 |
7.6.1.9 |
Problems in specifying pointer conversions
|
1413 |
13.8.3.4 |
Missing cases of value-dependency
|
1415 |
6.6 |
Missing prohibition of block-scope definition of extern object
|
1416 |
7.6.1.8 |
Function cv-qualifiers and typeid
|
1418 |
9.4.5 |
Type of initializer_list backing array |
1423 |
7.3.14 |
Convertibility of nullptr to bool
|
1425 |
11.4 |
Base-class subobjects of standard-layout structs
|
1428 |
6.8.5 |
Dynamic const objects
|
1431 |
14 |
Exceptions from other than throw-expressions
|
1435 |
9.3.4 |
template-id as the declarator for a class template constructor
|
1437 |
9.2.4 |
alignas in alias-declaration
|
1438 |
_N4885_6.7.5.5.4 |
Non-dereference use of invalid pointers
|
1439 |
_N4868_.9.8.2.3 |
Lookup and friend template declarations
|
1440 |
_N4567_.5.1.1 |
Acceptable decltype-specifiers used as nested-name-specifiers
|
1442 |
8.6.5 |
Argument-dependent lookup in the range-based for
|
1447 |
7.6.1.9 |
static_cast of bit-field lvalue to rvalue reference
|
1449 |
9.4.5 |
Narrowing conversion of negative value to unsigned type
|
1450 |
7.6.5 |
INT_MIN % -1
|
1453 |
6.8 |
Volatile members in literal classes?
|
1454 |
7.7 |
Passing constants through constexpr functions via references
|
1455 |
7.7 |
Lvalue converted constant expressions
|
1456 |
7.7 |
Address constant expression designating the one-past-the-end address
|
1457 |
7.6.7 |
Undefined behavior in left-shift
|
1458 |
7.6.2.2 |
Address of incomplete type vs operator&()
|
1462 |
13.10.3 |
Deduction failure vs “ill-formed, no diagnostic required”
|
1464 |
7.6.2.8 |
Negative array bound in a new-expression
|
1471 |
13.8.3.2 |
Nested type of non-dependent base
|
1472 |
6.3 |
odr-use of reference variables
|
1473 |
12.6 |
Syntax of literal-operator-id
|
1475 |
9.12.4 |
Errors in [[carries_dependency]] example
|
1476 |
3 |
Definition of user-defined type
|
1477 |
_N4868_.9.8.2.3 |
Definition of a friend outside its namespace
|
1479 |
12.6 |
Literal operators and default arguments
|
1480 |
7.7 |
Constant initialization via non-constant temporary
|
1481 |
12.4.7 |
Increment/decrement operators with reference parameters
|
1482 |
6.4.2 |
Point of declaration of enumeration
|
1487 |
_N4527_.12.9 |
When are inheriting constructors declared?
|
1489 |
6.9.3.2 |
Is value-initialization of an array constant initialization?
|
1491 |
11.4.5.3 |
Move construction and rvalue reference members
|
1494 |
9.4.5 |
Temporary initialization for reference binding in list-initialization
|
1495 |
13.7.6 |
Partial specialization of variadic class template
|
1502 |
9.4 |
Value initialization of unions with member initializers
|
1503 |
14.2 |
Exceptions during copy to exception object
|
1504 |
7.6.6 |
Pointer arithmetic after derived-base conversion
|
1506 |
9.4.5 |
Value category of initializer_list object
|
1507 |
9.4 |
Value initialization with trivial inaccessible default constructor
|
1510 |
9.3.4.3 |
cv-qualified references via decltype
|
1511 |
6.3 |
const volatile variables and the one-definition rule
|
1512 |
7.6.9 |
Pointer comparison vs qualification conversions
|
1515 |
6.8.2 |
Modulo 2n arithmetic for implicitly-unsigned types
|
1516 |
7.6.1.3 |
Definition of “virtual function call”
|
1522 |
9.4.5 |
Access checking for initializer_list array initialization
|
1527 |
7.6.19 |
Assignment from braced-init-list
|
1528 |
9.3 |
Repeated cv-qualifiers in declarators
|
1531 |
3 |
Definition of “access” (verb)
|
1532 |
13.9.3 |
Explicit instantiation and member templates
|
1533 |
13.7.4 |
Function pack expansion for member initialization
|
1535 |
7.7 |
typeid in core constant expressions
|
1537 |
7.7 |
Optional compile-time evaluation of constant expressions
|
1538 |
7.6.19 |
C-style cast in braced-init-list assignment
|
1539 |
6.8.2 |
Definition of “character type”
|
1541 |
8.7.4 |
cv void return types
|
1543 |
12.2.4.2.6 |
Implicit conversion sequence for empty initializer list
|
1544 |
9.2.2 |
Linkage of member of unnamed namespace
|
1550 |
7.6.16 |
Parenthesized throw-expression operand of conditional-expression
|
1553 |
7.6.2.5 |
sizeof and xvalue bit-fields
|
1556 |
12.2.2.5 |
Constructors and explicit conversion functions in direct initialization
|
1557 |
7.5.6.2 |
Language linkage of converted lambda function pointer
|
1559 |
7.6.2.8 |
String too long in initializer list of new-expression
|
1560 |
7.6.16 |
Gratuitous lvalue-to-rvalue conversion in conditional-expression with throw-expression operand
|
1563 |
12.3 |
List-initialization and overloaded function disambiguation
|
1588 |
9.2.9.7 |
Deducing cv-qualified auto
|
1597 |
9.2.6 |
Misleading constexpr example
|
1605 |
11.4.7 |
Misleading parenthetical comment for explicit destructor call
|
2035 |
13.7.6.2 |
Multi-section example is confusing
|
2114 |
_N4750_.C.3.5 |
Missing description of incompatibility from aggregate NSDMIs
|
2150 |
9.4.5 |
Initializer list array lifetime
|
2162 |
7.5.6.3 |
Capturing this by reference
|
Issue |
Section |
Title |
92 |
14.5 |
Should exception-specifications be part of the type system?
|
212 |
13.9.2 |
Implicit instantiation is not described clearly enough
|
238 |
7 |
Precision and accuracy constraints on floating point
|
242 |
7.6.3 |
Interpretation of old-style casts
|
330 |
7.3.6 |
Qualification conversions and pointers to arrays of pointers
|
393 |
9.3.4.6 |
Pointer to array of unknown bound in template argument list in parameter
|
591 |
13.8.3 |
When a dependent base class is the current instantiation
|
609 |
9.2.9.2 |
What is a “top-level” cv-qualifier?
|
636 |
7.2.1 |
Dynamic type of objects and aliasing
|
670 |
9.4 |
Copy initialization via derived-to-base conversion in the second step
|
987 |
9.8 |
Which declarations introduce namespace members?
|
1021 |
_N4868_.9.8.2.3 |
Definitions of namespace members
|
1116 |
6.7.4 |
Aliasing of union members
|
1247 |
9.2.4 |
Restriction on alias name appearing in type-id
|
1274 |
8.6.5 |
Common nonterminal for expression and braced-init-list
|
1284 |
6.7.4 |
Should the lifetime of an array be independent of that of its elements?
|
1292 |
13.8.3 |
Dependent calls with braced-init-lists containing a pack expansion
|
1309 |
13.8.3.2 |
Incorrect note regarding lookup of a member of the current instantiation
|
1315 |
13.7.6.1 |
Restrictions on non-type template arguments in partial specializations
|
1338 |
6.7.6.5.2 |
Aliasing and allocation functions
|
1351 |
14.5 |
Problems with implicitly-declared exception-specifications
|
1356 |
14.5 |
Exception specifications of copy assignment operators with virtual bases
|
1391 |
13.10.2 |
Conversions to parameter types with non-deduced template arguments
|
1397 |
11.4 |
Class completeness in non-static data member initializers
|
1446 |
13.7.7.3 |
Member function with no ref-qualifier and non-member function with rvalue reference
|
1451 |
13.4.3 |
Objects with no linkage in non-type template arguments
|
1465 |
7.6.2.7 |
noexcept and std::bad_array_new_length
|
1467 |
9.4.5 |
List-initialization of aggregate from same-type object
|
1484 |
13.9.2 |
Unused local classes of function templates
|
1490 |
9.4.5 |
List-initialization from a string literal
|
1492 |
11.4.7 |
Exception specifications on template destructors
|
1496 |
11.3 |
Triviality with deleted and missing default constructors
|
1518 |
9.4.5 |
Explicit default constructors and copy-list-initialization
|
1552 |
9.5.2 |
exception-specifications and defaulted special member functions
|
1558 |
13.7.8 |
Unused arguments in alias template specializations
|
1561 |
9.4.2 |
Aggregates with empty base classes
|
1571 |
9.4.4 |
cv-qualification for indirect reference binding via conversion function
|
1572 |
9.4.4 |
Incorrect example for rvalue reference binding via conversion function
|
1573 |
_N4527_.12.9 |
Inherited constructor characteristics
|
1589 |
12.2.4.3 |
Ambiguous ranking of list-initialization sequences
|
1590 |
11.4.5.3 |
Bypassing non-copy/move constructor copying
|
1591 |
13.10.3.2 |
Deducing array bound and element type from initializer list
|
1596 |
7.6.9 |
Non-array objects as array[1]
|
1599 |
9.4.5 |
Lifetime of initializer_list underlying array
|
1600 |
9.2.9.3 |
Erroneous reference initialization in example
|
1603 |
6.6 |
Errors resulting from giving unnamed namespaces internal linkage
|
1614 |
6.3 |
Address of pure virtual function vs odr-use
|
1615 |
9.12.2 |
Alignment of types, variables, and members
|
1630 |
9.4 |
Multiple default constructor templates
|
1631 |
12.2.4.2.6 |
Incorrect overload resolution for single-element initializer-list
|
1633 |
9.4 |
Copy-initialization in member initialization
|
1638 |
9.7.1 |
Declaring an explicit specialization of a scoped enumeration
|
1639 |
14.5 |
exception-specifications and pointer/pointer-to-member expressions
|
1645 |
_N4527_.12.9 |
Identical inheriting constructors via default arguments
|
1652 |
7.6.10 |
Object addresses in constexpr expressions
|
1653 |
7.6.2.3 |
Removing deprecated increment of bool
|
1657 |
9.8.2 |
Attributes for namespaces and enumerators
|
1672 |
11.4 |
Layout compatibility with multiple empty bases
|
1683 |
7.7 |
Incorrect example after constexpr changes
|
1686 |
6.6 |
Which variables are “explicitly declared const?”
|
1694 |
7.7 |
Restriction on reference to temporary as a constant expression
|
1696 |
6.7.7 |
Temporary lifetime and non-static data member initializers
|
1697 |
6.7.7 |
Lifetime extension and copy elision
|
1705 |
13.10.3.5 |
Unclear specification of “more specialized”
|
1708 |
9.11 |
overly-strict requirements for names with C language linkage
|
1712 |
9.2.6 |
constexpr variable template declarations
|
1715 |
_N4527_.12.9 |
Access and inherited constructor templates
|
1719 |
11.4 |
Layout compatibility and cv-qualification revisited
|
1722 |
7.5.6.2 |
Should lambda to function pointer conversion function be noexcept?
|
1734 |
11.4.5.3 |
Nontrivial deleted copy functions
|
1736 |
_N4527_.12.9 |
Inheriting constructor templates in a local class
|
1744 |
6.9.3.2 |
Unordered initialization for variable template specializations
|
1748 |
7.6.2.8 |
Placement new with a null pointer
|
1750 |
12.2.2.5 |
“Argument” vs “parameter”
|
1751 |
6.7.4 |
Non-trivial operations vs non-trivial initialization
|
1752 |
11.9.3 |
Right-recursion in mem-initializer-list
|
1753 |
6.5.5 |
decltype-specifier in nested-name-specifier of destructor
|
1756 |
9.4.5 |
Direct-list-initialization of a non-class object
|
1757 |
7.7 |
Const integral subobjects
|
1758 |
12.2.2.8 |
Explicit conversion in copy/move list initialization
|
1766 |
9.7.1 |
Values outside the range of the values of an enumeration
|
1774 |
14.3 |
Discrepancy between subobject destruction and stack unwinding
|
1776 |
6.7.4 |
Replacement of class objects containing reference members
|
1777 |
14.5 |
Empty pack expansion in dynamic-exception-specification
|
1779 |
13.8.3.3 |
Type dependency of __func__
|
1780 |
7.5.6.2 |
Explicit instantiation/specialization of generic lambda operator()
|
1782 |
9.4 |
Form of initialization for nullptr_t to bool conversion
|
1788 |
7.6.2.9 |
Sized deallocation of array of non-class type
|
1791 |
9.5.1 |
Incorrect restrictions on cv-qualifier-seq and ref-qualifier
|
1793 |
9.2.2 |
thread_local in explicit specializations
|
1795 |
9.8.2 |
Disambiguating original-namespace-definition and extension-namespace-definition
|
1796 |
5.3.1 |
Is all-bits-zero for null characters a meaningful requirement?
|
1797 |
6.8.2 |
Are all bit patterns of unsigned char distinct numbers?
|
1799 |
9.2.2 |
mutable and non-explicit const qualification
|
1800 |
7.6.2.2 |
Pointer to member of nested anonymous union
|
1801 |
11.5 |
Kind of expression referring to member of anonymous union
|
1802 |
5.13.5 |
char16_t string literals and surrogate pairs
|
1804 |
13.7.5 |
Partial specialization and friendship
|
1805 |
7.6.16 |
Conversions of array operands in conditional-expressions
|
1806 |
11.4.6 |
Virtual bases and move-assignment
|
1807 |
14.3 |
Order of destruction of array elements after an exception
|
1809 |
13.10.3 |
Narrowing and template argument deduction
|
1810 |
5.13.9 |
Invalid ud-suffixes
|
1811 |
11.4.7 |
Lookup of deallocation function in a virtual destructor definition
|
1813 |
11 |
Direct vs indirect bases in standard-layout classes
|
1814 |
9.3.4.7 |
Default arguments in lambda-expressions
|
1815 |
9.4.2 |
Lifetime extension in aggregate initialization
|
1816 |
7.3.9 |
Unclear specification of bit-field values
|
1819 |
13.7.6.1 |
Acceptable scopes for definition of partial specialization
|
1823 |
9.2.3 |
String literal uniqueness in inline functions
|
1824 |
9.3.4.6 |
Completeness of return type vs point of instantiation
|
1830 |
9.1 |
Repeated specifiers
|
1832 |
7.6.1.9 |
Casting to incomplete enumeration
|
1834 |
6.9.3.2 |
Constant initialization binding a reference to an xvalue
|
1838 |
_N4868_.9.8.2.3 |
Definition via unqualified-id and using-declaration
|
1843 |
7.6.16 |
Bit-field in conditional operator with throw operand
|
1846 |
9.5.2 |
Declaring explicitly-defaulted implicitly-deleted functions
|
1847 |
13.10.3.6 |
Clarifying compatibility during partial ordering
|
1848 |
11.4.7 |
Parenthesized constructor and destructor declarators
|
1850 |
13.8 |
Differences between definition context and point of instantiation
|
1851 |
7.6.2.8 |
decltype(auto) in new-expressions
|
1852 |
9.2.9.3 |
Wording issues regarding decltype(auto)
|
1858 |
7.6.10 |
Comparing pointers to union members
|
1861 |
11.4.10 |
Values of a bit-field
|
1863 |
14.2 |
Requirements on thrown object type to support std::current_exception()
|
1865 |
7.6.6 |
Pointer arithmetic and multi-level qualification conversions
|
1866 |
14.3 |
Initializing variant members with non-trivial destructors
|
1870 |
6.2 |
Contradictory wording about definitions vs explicit specialization/instantiation
|
1872 |
9.2.6 |
Instantiations of constexpr templates that cannot appear in constant expressions
|
1873 |
11.8.3 |
Protected member access from derived class friends
|
1874 |
13.2 |
Type vs non-type template parameters with class keyword
|
1875 |
6.4.7 |
Reordering declarations in class scope
|
1877 |
9.2.9.7 |
Return type deduction from return with no operand
|
1878 |
9.2.9.7 |
operator auto template
|
1880 |
7.6.1.3 |
When are parameter objects destroyed?
|
1881 |
11 |
Standard-layout classes and unnamed bit-fields
|
1882 |
_N4140_.17.6.4.3.2 |
Reserved names without library use
|
1885 |
7.6.1.3 |
Return value of a function is underspecified
|
1886 |
6.9.3.1 |
Language linkage for main()
|
1887 |
9.9 |
Problems with :: as nested-name-specifier
|
1888 |
11.4.5 |
Implicitly-declared default constructors and explicit
|
1891 |
7.5.6.2 |
Move constructor/assignment for closure class
|
1892 |
9.2.9.7 |
Use of auto in function type
|
1895 |
7.6.16 |
Deleted conversions in conditional operator operands
|
1899 |
13.8.3.4 |
Value-dependent constant expressions
|
1902 |
12.2.4.2 |
What makes a conversion “otherwise ill-formed”?
|
1903 |
9.9 |
What declarations are introduced by a non-member using-declaration?
|
1909 |
11.4 |
Member class template with the same name as the class
|
1911 |
9.2.6 |
constexpr constructor with non-literal base class
|
1916 |
11.4.5.3 |
“Same cv-unqualified type”
|
1920 |
_N4778_.7.6.1.4 |
Qualification mismatch in pseudo-destructor-name
|
1922 |
13.8.2 |
Injected class template names and default arguments
|
1925 |
7.6.20 |
Bit-field prvalues
|
1926 |
6.3 |
Potential results of subscript operator
|
1929 |
_N4567_.5.1.1 |
template keyword following namespace nested-name-specifier
|
1930 |
9.2.2 |
init-declarator-list vs member-declarator-list
|
1932 |
7.6.16 |
Bit-field results of conditional operators
|
1940 |
11.5 |
static_assert in anonymous unions
|
1941 |
_N4527_.12.9 |
SFINAE and inherited constructor default arguments
|
1942 |
7.5.6 |
Incorrect reference to trailing-return-type
|
1946 |
14.5 |
exception-specifications vs pointer dereference
|
1949 |
6.9.1 |
“sequenced after” instead of “sequenced before”
|
1951 |
6.8 |
Cv-qualification and literal types
|
1952 |
7.7 |
Constant expressions and library undefined behavior
|
1955 |
15.2 |
#elif with invalid controlling expression
|
1956 |
6.7.6.4 |
Reuse of storage of automatic variables
|
1958 |
9.2.9.7 |
decltype(auto) with parenthesized initializer
|
1959 |
_N4527_.12.9 |
Inadvertently inherited copy constructor
|
1963 |
5.11 |
Implementation-defined identifier characters
|
1966 |
9.7.1 |
Colon following enumeration elaborated-type-specifier
|
1967 |
11.9.6 |
Temporary lifetime and move-elision
|
1971 |
7.6.2.2 |
Unclear disambiguation of destructor and operator~
|
1975 |
14.5 |
Permissible declarations for exception-specifications
|
1978 |
11.4.8.2 |
Redundant description of explicit constructor use
|
1981 |
7.3 |
Implicit contextual conversions and explicit
|
1988 |
13.8.3.2 |
Ambiguity between dependent and non-dependent bases in implicit member access
|
1990 |
9.1 |
Ambiguity due to optional decl-specifier-seq
|
1991 |
_N4527_.12.9 |
Inheriting constructors vs default arguments
|
1992 |
7.6.2.8 |
new (std::nothrow) int[N] can throw
|
1995 |
14.5 |
exception-specifications and non-type template parameters
|
1999 |
5.2 |
Representation of source characters as universal-character-names
|
2000 |
5.5 |
header-name outside #include directive
|
2001 |
15 |
non-directive is underspecified
|
2004 |
7.7 |
Unions with mutable members in constant expressions
|
2006 |
6.8.4 |
Cv-qualified void types
|
2008 |
13.4 |
Default template-arguments underspecified
|
2010 |
14.5 |
exception-specifications and conversion operators
|
2012 |
6.7.6 |
Lifetime of references
|
2015 |
9.5.3 |
odr-use of deleted virtual functions
|
2016 |
11.4.8.3 |
Confusing wording in description of conversion function
|
2017 |
8.7.4 |
Flowing off end is not equivalent to no-expression return
|
2019 |
6.7.6.1 |
Member references omitted from description of storage duration
|
2022 |
7.7 |
Copy elision in constant expressions
|
2024 |
13.8.3.2 |
Dependent types and unexpanded parameter packs
|
2026 |
6.9.3 |
Zero-initialization and constexpr
|
2027 |
9.12.2 |
Unclear requirements for multiple alignas specifiers
|
2031 |
C.6.3 |
Missing incompatibility for &&
|
2032 |
13.2 |
Default template-arguments of variable templates
|
2033 |
13.7.6.1 |
Redundant restriction on partial specialization argument
|
2038 |
C.4 |
Document C++14 incompatibility of new braced deduction rule
|
2039 |
14.5 |
Constant conversions to bool
|
2040 |
9.3 |
trailing-return-type no longer ambiguous
|
2041 |
13.9.4 |
Namespace for explicit class template specialization
|
2044 |
9.2.9.7 |
decltype(auto) and void
|
2047 |
14.5 |
Coordinating “throws anything” specifications
|
2052 |
12.4 |
Template argument deduction vs overloaded operators
|
2061 |
9.8.2 |
Inline namespace after simplifications
|
2063 |
_N4868_.6.4.1 |
Type/nontype hiding in class scope
|
2064 |
13.6 |
Conflicting specifications for dependent decltype-specifiers
|
2066 |
13.8.3.4 |
Does type-dependent imply value-dependent?
|
2068 |
11.4.7 |
When can/must a defaulted virtual destructor be defined?
|
2069 |
11.4.7 |
Do destructors have names?
|
2071 |
9.2.4 |
typedef with no declarator
|
2075 |
12.2.4.2.6 |
Passing short initializer lists to array reference parameters
|
2076 |
12.2.4.2 |
List-initialization of arguments for constructor parameters
|
2079 |
9.12.1 |
[[ appearing in a balanced-token-seq
|
2082 |
9.3.4.7 |
Referring to parameters in unevaluated operands of default arguments
|
2084 |
11.4.5 |
NSDMIs and deleted union default constructors
|
2085 |
6.3 |
Invalid example of adding special member function via default argument
|
2091 |
13.10.3.6 |
Deducing reference non-type template arguments
|
2093 |
14.4 |
Qualification conversion for pointer-to-member handler matching
|
2095 |
7.5.6.3 |
Capturing rvalue references to functions by copy
|
2096 |
6.8 |
Constraints on literal unions
|
2098 |
14.6.3 |
Is uncaught_exceptions() per-thread?
|
2099 |
9.3.4.5 |
Inferring the bound of an array static data member
|
2101 |
13.8.3 |
Incorrect description of type- and value-dependence
|
2104 |
6.3 |
Internal-linkage constexpr references and ODR requirements
|
2106 |
13.4.2 |
Unclear restrictions on use of function-type template arguments
|
2107 |
6.7.7 |
Lifetime of temporaries for default arguments in array copying
|
2109 |
13.8.3.4 |
Value dependence underspecified
|
2113 |
9.3.4 |
Incompete specification of types for declarators
|
2120 |
11 |
Array as first non-static data member in standard-layout class
|
2122 |
7.2.1 |
Glvalues of void type
|
2124 |
3.57 |
Signature of constructor template
|
2129 |
7.7 |
Non-object prvalues and constant expressions
|
2130 |
7.6.2.8 |
Over-aligned types in new-expressions
|
2137 |
9.4.5 |
List-initialization from object of same type
|
2140 |
7.3.2 |
Lvalue-to-rvalue conversion of std::nullptr_t
|
2141 |
7.6.2.8 |
Ambiguity in new-expression with elaborated-type-specifier
|
2145 |
9.5.1 |
Parenthesized declarator in function definition
|
2146 |
6.9.1 |
Scalar object vs memory location in definition of “unsequenced”
|
2147 |
13.10.3.2 |
Initializer-list arguments and pack deduction
|
2151 |
6.7.2 |
Exception object is not created
|
2153 |
11.4 |
pure-specifier in friend declaration
|
2154 |
11.4 |
Ambiguity of pure-specifier
|
2156 |
9.7.1 |
Definition of enumeration declared by using-declaration
|
2157 |
9.2.9.5 |
Further disambiguation of enumeration elaborated-type-specifier
|
2163 |
9.2.6 |
Labels in constexpr functions
|
2167 |
7.7 |
Non-member references with lifetimes within the current evaluation
|
2171 |
11.4.5.3 |
Triviality of copy constructor with less-qualified parameter
|
2175 |
9.3.3 |
Ambiguity with attribute in conversion operator declaration
|
2176 |
7.6.1.3 |
Destroying the returned object when a destructor throws
|
2180 |
11.4.6 |
Virtual bases in destructors and defaulted assignment operators
|
2184 |
C.7.4 |
Missing C compatibility entry for decrement of bool
|
Issue |
Section |
Title |
476 |
7.6.2.8 |
Determining the buffer size for placement new
|
555 |
6.5 |
Pseudo-destructor name lookup
|
581 |
13.10.2 |
Can a templated constructor be explicitly instantiated or specialized?
|
682 |
_N4868_.6.5.6 |
Missing description of lookup of template aliases
|
689 |
6.8.2 |
Maximum values of signed and unsigned integers
|
943 |
7.6.1.4 |
Is T() a temporary?
|
1076 |
7.2.1 |
Value categories and lvalue temporaries
|
1258 |
13.8.4.1 |
“Instantiation context” differs from dependent lookup rules
|
1271 |
13.8 |
Imprecise wording regarding dependent types
|
1299 |
6.7.7 |
“Temporary objects” vs “temporary expressions”
|
1331 |
9.5.2 |
const mismatch with defaulted copy constructor
|
1332 |
5.3.1 |
Handling of invalid universal-character-names
|
1378 |
13.9.2 |
When is an instantiation required?
|
1426 |
9.5.2 |
Allowing additional parameter types in defaulted functions
|
1468 |
7.5.6.3 |
typeid, overload resolution, and implicit lambda capture
|
1469 |
7.6.2.8 |
Omitted bound in array new-expression
|
1523 |
8.6.5 |
Point of declaration in range-based for
|
1581 |
6.3 |
When are constexpr member functions defined?
|
1632 |
7.5.6.3 |
Lambda capture in member initializers
|
1636 |
9.7.1 |
Bits required for negative enumerator values
|
1640 |
9.3.4.5 |
Array of abstract instance of class template
|
1646 |
7.6.1.3 |
decltype-specifiers, abstract classes, and deduction failure
|
1704 |
13.9.3 |
Type checking in explicit instantiation of variable templates
|
1728 |
13.9.3 |
Type of an explicit instantiation of a variable template
|
1742 |
9.9 |
using-declarations and scoped enumerators
|
1781 |
12.2.2.6 |
Converting from nullptr_t to bool in overload resolution
|
1803 |
11.4 |
opaque-enum-declaration as member-declaration
|
1836 |
_N4567_.5.1.1 |
Use of class type being defined in trailing-return-type
|
1857 |
7.6.7 |
Additional questions about bits
|
1859 |
5.13.5 |
UTF-16 in char16_t string literals
|
1862 |
13.7.5 |
Determining “corresponding members” for friendship
|
1893 |
7.6.1.4 |
Function-style cast with braced-init-lists and empty pack expansions
|
1910 |
6.7.6.5.2 |
“Shall” requirement applied to runtime behavior
|
1912 |
9.5.2 |
exception-specification of defaulted function
|
1913 |
7.5.6 |
decltype((x)) in lambda-expressions
|
1918 |
13.7.5 |
friend templates with dependent scopes
|
1931 |
7.5.6.2 |
Default-constructible and copy-assignable closure types
|
1935 |
7.6.2.8 |
Reuse of placement arguments in deallocation
|
1937 |
7.5.6.2 |
Incomplete specification of function pointer from lambda
|
1938 |
4.1 |
Should hosted/freestanding be implementation-defined?
|
1943 |
11.4.10 |
Unspecified meaning of “bit”
|
1945 |
13.7.5 |
Friend declarations naming members of class templates in non-templates
|
1983 |
11.4 |
Inappropriate use of virt-specifier
|
2020 |
6.3 |
Inadequate description of odr-use of implicitly-invoked functions
|
2045 |
13.7.7.2 |
“Identical” template parameter lists
|
2051 |
7.2.1 |
Simplifying alias rules
|
2059 |
9.2.9.7 |
Linkage and deduced return types
|
2080 |
11.5 |
Example with empty anonymous union member
|
2081 |
9.2.9.7 |
Deduced return type in redeclaration or specialization of function template
|
2083 |
6.3 |
Incorrect cases of odr-use
|
2088 |
13.10.3.5 |
Late tiebreakers in partial ordering
|
2092 |
13.10.4 |
Deduction failure and overload resolution
|
2103 |
6.3 |
Lvalue-to-rvalue conversion is irrelevant in odr-use of a reference
|
2112 |
7.6.2.8 |
new auto{x}
|
2133 |
7.3.14 |
Converting std::nullptr_t to bool
|
2164 |
_N4868_.6.4.10 |
Name hiding and using-directives
|
2170 |
6.3 |
Unclear definition of odr-use for arrays
|
2177 |
7.6.2.8 |
Placement operator delete and parameter copies
|
2207 |
6.7.6.5.2 |
Alignment of allocation function return value
|
2212 |
9.2.4 |
Typedef changing linkage after use
|
2226 |
7.6.16 |
Xvalues vs lvalues in conditional expressions
|
2227 |
11.9.3 |
Destructor access and default member initializers
|
2229 |
11.4.10 |
Volatile unnamed bit-fields
|
2233 |
9.3.4.7 |
Function parameter packs following default arguments
|
2234 |
11 |
Missing rules for simple-template-id as class-name
|
2235 |
13.10.3.5 |
Partial ordering and non-dependent types
|
2237 |
11.4.5 |
Can a template-id name a constructor?
|
2241 |
7.6.1.3 |
Overload resolution is not invoked with a single function
|
2249 |
7.5.5.2 |
identifiers and id-expressions
|
2253 |
11.4.10 |
Unnamed bit-fields and zero-initialization
|
2254 |
11.4 |
Standard-layout classes and bit-fields
|
2255 |
13.9 |
Instantiated static data member templates
|
2256 |
6.7.4 |
Lifetime of trivially-destructible objects
|
2257 |
6.7.7 |
Lifetime extension of references vs exceptions
|
2260 |
13.9.4 |
Explicit specializations of deleted member functions
|
2266 |
13.8.3.2 |
Has dependent type vs is type-dependent
|
2267 |
9.4.4 |
Copy-initialization of temporary in reference direct-initialization
|
2273 |
11.4.5 |
Inheriting constructors vs implicit default constructor
|
2277 |
12.2.4.3 |
Ambiguity inheriting constructors with default arguments
|
2278 |
7.7 |
Copy elision in constant expressions reconsidered
|
2285 |
9.6 |
Issues with structured bindings
|
2287 |
6.8.4 |
Pointer-interconvertibility in non-standard-layout unions
|
2289 |
_N4868_.6.4.1 |
Uniqueness of structured binding names
|
2290 |
12.2.2 |
Unclear specification for overload resolution and deleted special member functions
|
2292 |
13.3 |
simple-template-id is ambiguous between class-name and type-name
|
2293 |
11 |
Requirements for simple-template-id used as a class-name
|
2294 |
13.8.3.3 |
Dependent auto static data members
|
2295 |
9.4.2 |
Aggregates with deleted defaulted constructors
|
2299 |
9.2.6 |
constexpr vararg functions
|
2300 |
6.3 |
Lambdas in multiple definitions
|
2303 |
13.10.3.2 |
Partial ordering and recursive variadic inheritance
|
2305 |
13.9.3 |
Explicit instantiation of constexpr or inline variable template
|
2307 |
13.8.3.2 |
Unclear definition of “equivalent to a nontype template parameter”
|
2309 |
9.2.6 |
Restrictions on nested statements within constexpr functions
|
2310 |
7.3.12 |
Type completeness and derived-to-base pointer conversions
|
2313 |
9.6 |
Redeclaration of structured binding reference variables
|
2315 |
11.4.5.3 |
What is the “corresponding special member” of a variant member?
|
2317 |
11.9.3 |
Self-referential default member initializers
|
2318 |
13.10.3.6 |
Nondeduced contexts in deduction from a braced-init-list
|
2321 |
7.6.16 |
Conditional operator and cv-qualified class prvalues
|
2322 |
13.10.3 |
Substitution failure and lexical order
|
2330 |
13.9 |
Missing references to variable templates
|
2332 |
9.2.9.3 |
template-name as simple-type-name vs injected-class-name
|
2336 |
14.5 |
Destructor characteristics vs potentially-constructed subobjects
|
2338 |
7.6.1.9 |
Undefined behavior converting to short enums with fixed underlying types
|
2339 |
9.6 |
Underspecified template arguments in structured bindings
|
2341 |
9.1 |
Structured bindings with static storage duration
|
2342 |
7.6.1.10 |
Reference reinterpret_cast and pointer-interconvertibility
|
2345 |
8.5.2 |
Jumping across initializers in init-statements and conditions
|
2346 |
9.3.4.7 |
Local variables in default arguments
|
2351 |
7.6.1.4 |
void{}
|
2352 |
9.4.4 |
Similar types and reference binding
|
2353 |
6.3 |
Potential results of a member access expression for a static data member
|
2354 |
6.7.3 |
Extended alignment and object representation
|
2356 |
12.2.2 |
Base class copy and move constructors should not be inherited
|
2358 |
7.5.6.3 |
Explicit capture of value
|
2359 |
9.4.2 |
Unintended copy initialization with designated initializers
|
2360 |
9.12.9 |
[[maybe_unused]] and structured bindings
|
2365 |
7.6.1.7 |
Confusing specification for dynamic_cast
|
2366 |
6.9.3.2 |
Can default initialization be constant initialization?
|
2368 |
7.7 |
Differences in relational and three-way constant comparisons
|
2371 |
6.2 |
Use of the English term “attributes” is confusing
|
2372 |
6.6 |
Incorrect matching rules for block-scope extern declarations
|
2373 |
13.7.7.3 |
Incorrect handling of static member function templates in partial ordering
|
2376 |
12.2.2.9 |
Class template argument deduction with array declarator
|
2379 |
13.7.5 |
Missing prohibition against constexpr in friend declaration
|
2380 |
6.3 |
capture-default makes too many references odr-usable
|
2381 |
7.2.2 |
Composite pointer type of pointers to plain and noexcept member functions
|
2382 |
7.6.2.8 |
Array allocation overhead for non-allocating placement new
|
2384 |
13.10.3.4 |
Conversion function templates and qualification conversions
|
2385 |
7.5.5.3 |
Lookup for conversion-function-ids
|
2386 |
9.6 |
tuple_size requirements for structured binding
|
2387 |
6.6 |
Linkage of const-qualified variable template
|
2390 |
15.2 |
Is the argument of __has_cpp_attribute macro-expanded?
|
2394 |
11.4.5.2 |
Const-default-constructible for members
|
2399 |
7.6.19 |
Unclear referent of “expression” in assignment-expression
|
2400 |
7.7 |
Constexpr virtual functions and temporary objects
|
2404 |
11.4 |
[[no_unique_address]] and allocation order
|
2406 |
9.12.6 |
[[fallthrough]] attribute and iteration statements
|
2418 |
7.7 |
Missing cases in definition of “usable in constant expressions”
|
Issue |
Section |
Title |
36 |
9.9 |
using-declarations in multiple-declaration contexts
|
110 |
13 |
Can template functions and classes be declared in the same scope?
|
138 |
_N4868_.9.8.2.3 |
Friend declaration name lookup
|
191 |
6.5.3 |
Name lookup does not handle complex nesting
|
255 |
11.4.11 |
Placement deallocation functions and lookup ambiguity
|
271 |
13.10.3 |
Explicit instantiation and template argument deduction
|
279 |
6.6 |
Correspondence of "names for linkage purposes"
|
338 |
6.6 |
Enumerator name with linkage used as class name in other translation unit
|
360 |
11.8.3 |
Using-declaration that reduces access
|
386 |
9.9 |
Friend declaration of name brought in by using-declaration
|
399 |
11.4.7 |
Destructor lookup redux
|
405 |
6.5.3 |
Unqualified function name lookup
|
411 |
5.13.5 |
Use of universal-character-name in character versus string literals
|
418 |
12.2.4 |
Imperfect wording on error on multiple default arguments on a called function
|
536 |
_N4567_.5.1.1 |
Problems in the description of id-expressions
|
554 |
6.4 |
Definition of “declarative region” and “scope”
|
562 |
6.5.5.2 |
qualified-ids in non-expression contexts
|
563 |
9.11 |
Linkage specification for objects
|
578 |
5.2 |
Phase 1 replacement of characters with universal-character-names
|
600 |
11.8 |
Does access control apply to members or to names?
|
607 |
11.9.3 |
Lookup of mem-initializer-ids
|
852 |
9.9 |
using-declarations and dependent base classes
|
952 |
11.8.3 |
Insufficient description of “naming class”
|
1028 |
13.8.4 |
Dependent names in non-defining declarations
|
1200 |
6.5.3 |
Lookup rules for template parameters
|
1249 |
7.5.6.3 |
Cv-qualification of nested lambda capture
|
1252 |
_N4868_.12.2 |
Overloading member function templates based on dependent return type
|
1291 |
_N4868_.6.5.6 |
Looking up a conversion-type-id
|
1335 |
15.6.3 |
Stringizing, extended characters, and universal-character-names
|
1342 |
9.3 |
Order of initialization with multiple declarators
|
1360 |
11.4.5 |
constexpr defaulted default constructors
|
1403 |
5.4 |
Universal-character-names in comments
|
1478 |
13.3 |
template keyword for dependent template template arguments
|
1500 |
13.8.4.2 |
Name lookup of dependent conversion function
|
1616 |
8.9 |
Disambiguation parsing and template parameters
|
1656 |
5.13.3 |
Encoding of numerically-escaped characters
|
1711 |
13.7.6 |
Missing specification of variable template partial specializations
|
1724 |
13.10.3 |
Unclear rules for deduction failure
|
1726 |
11.4.8.3 |
Declarator operators and conversion function
|
1729 |
13.7 |
Matching declarations and definitions of variable templates
|
1733 |
9.5.2 |
Return type and value for operator= with ref-qualifier
|
1771 |
6.5.5 |
Restricted lookup in nested-name-specifier
|
1818 |
9.11 |
Visibility and inherited language linkage
|
1820 |
9.2.4 |
Qualified typedef names
|
1821 |
11.4 |
Qualified redeclarations in a class member-specification
|
1822 |
7.5.6 |
Lookup of parameter names in lambda-expressions
|
1828 |
6.5.5 |
nested-name-specifier ambiguity
|
1829 |
13.8.3.2 |
Dependent unnamed types
|
1835 |
_N4868_.6.5.6 |
Dependent member lookup before <
|
1837 |
_N4567_.5.1.1 |
Use of this in friend and local class declarations
|
1839 |
6.6 |
Lookup of block-scope extern declarations
|
1841 |
13.8.2 |
< following template injected-class-name
|
1849 |
6.3 |
Variable templates and the ODR
|
1884 |
6.6 |
Unclear requirements for same-named external-linkage entities
|
1894 |
9.2.4 |
typedef-names and using-declarations
|
1896 |
13.7.8 |
Repeated alias templates
|
1898 |
_N4868_.12.3 |
Use of “equivalent” in overload resolution
|
1900 |
9.3.4 |
Do friend declarations count as “previous declarations”?
|
1907 |
9.9 |
using-declarations and default arguments
|
1908 |
_N4868_.6.5.6 |
Dual destructor lookup and template-ids
|
1936 |
13.8.3 |
Dependent qualified-ids
|
1969 |
11.4.7 |
Missing exclusion of ~S as an ordinary function name
|
1972 |
5.11 |
Identifier character restrictions in non-identifiers
|
2007 |
12.2.2.3 |
Argument-dependent lookup for operator=
|
2009 |
6.4.7 |
Unclear specification of class scope
|
2058 |
6.6 |
More errors from internal-linkage namespaces
|
2062 |
13.7.2 |
Class template redeclaration requirements
|
2065 |
13.8.3.2 |
Current instantiation of a partial specialization
|
2070 |
6.5.5.2 |
using-declaration with dependent nested-name-specifier
|
2121 |
7.5.6.1 |
More flexible lambda syntax
|
2165 |
_N4868_.6.4.1 |
Namespaces, declarative regions, and translation units
|
2185 |
6.8.2 |
Cv-qualified numeric types
|
2199 |
9.2.4 |
Typedefs and tags
|
2213 |
9.2.9.5 |
Forward declaration of partial specializations
|
2221 |
9.5.2 |
Copying volatile objects
|
2312 |
9.6 |
Structured bindings and mutable
|
2331 |
6.4.7 |
Redundancy in description of class scope
|
2333 |
5.13.3 |
Escape sequences in UTF-8 character literals
|
2355 |
13.10.3.6 |
Deducing noexcept-specifiers
|
2369 |
13.10.3 |
Ordering between constraints and substitution
|
2370 |
6.5.3 |
friend declarations of namespace-scope functions
|
2389 |
9.2.9.7 |
Agreement of deduced and explicitly-specified variable types
|
2396 |
7.5.5.3 |
Lookup of names in complex conversion-type-ids
|
2397 |
9.3.4.5 |
auto specifier for pointers and references to arrays
|
2402 |
5.13.3 |
When is the restriction to a single c-char in a Unicode literal enforced?
|
2405 |
13.8.3.3 |
Additional type-dependent expressions
|
2413 |
13.8 |
typename in conversion-function-ids
|
2448 |
6.8.2 |
Cv-qualification of arithmetic types and deprecation of volatile
|
2452 |
8.7.5 |
Flowing off the end of a coroutine
|
2455 |
5.2 |
Concatenation of string literals vs translation phases 5 and 6
|
2457 |
13.8.3.2 |
Unexpanded parameter packs don't make a function type dependent
|
2458 |
7.6.1.5 |
Value category of expressions denoting non-static member functions
|
2460 |
9.11 |
C language linkage and constrained non-template friends
|
2461 |
13.8 |
Diagnosing non-bool type constraints
|
2464 |
17.6.5 |
Constexpr launder and unions
|
2465 |
9.5.4 |
Coroutine parameters passed to a promise constructor
|
2466 |
7.6.2.4 |
co_await should be a single evaluation
|
2470 |
6.7.2 |
Multiple array objects providing storage for one object
|
2474 |
7.6.2.9 |
Cv-qualification and deletion
|
2477 |
11.4.5.3 |
Defaulted vs deleted copy constructors/assignment operators
|
2479 |
6.9.3.1 |
Missing specifications for consteval and constinit
|
2481 |
9.4.4 |
Cv-qualification of temporary to which a reference is bound
|
2482 |
22.11.3 |
bit_cast and indeterminate values
|
2484 |
7.3.7 |
char8_t and char16_t in integral promotions
|
2486 |
7.6.1.3 |
Call to noexcept function via noexcept(false) pointer/lvalue
|
2490 |
7.7 |
Restrictions on destruction in constant expressions
|
2491 |
10.2 |
Export of typedef after its first declaration
|
2494 |
6.3 |
Multiple definitions of non-odr-used entities
|
2496 |
11.7.3 |
ref-qualifiers and virtual overriding
|
2499 |
6.8.4 |
Inconsistency in definition of pointer-interconvertibility
|
2502 |
6.4.3 |
Unintended declaration conflicts in nested statement scopes
|
2506 |
9.6 |
Structured bindings and array cv-qualifiers
|
2507 |
12.4.1 |
Default arguments for operator[]
|
2509 |
7.5.6.1 |
decl-specifier-seq in lambda-specifiers
|
2511 |
11.4.10 |
cv-qualified bit-fields
|
2534 |
7.6.1.5 |
Value category of pseudo-destructor expression
|
2535 |
7.6.1.5 |
Type punning in class member access
|
2540 |
5.13.3 |
Unspecified interpretation of numeric-escape-sequence
|
2569 |
7.5.5.2 |
Use of decltype(capture) in a lambda's parameter-declaration-clause
|
2571 |
7.6.1.2 |
Evaluation order for subscripting
|
2582 |
6.5.2 |
Differing member lookup from nested classes
|
2585 |
9.5.4 |
Name lookup for coroutine allocation
|
2586 |
11.10.1 |
Explicit object parameter for assignment and comparison
|
2594 |
6.9.3.1 |
Disallowing a global function template main
|
2597 |
10.1 |
Replaceable allocation and deallocation functions in the global module
|
2606 |
7.6.1.9 |
static_cast from "pointer to void" does not handle similar types
|
2608 |
13.10.2 |
Omitting an empty template argument list
|
Issue |
Section |
Title |
745 |
15.8 |
Effect of ill-formedness resulting from #error
|
900 |
6.7.7 |
Lifetime of temporaries in range-based for
|
1396 |
13.9.2 |
Deferred instantiation and checking of non-static data member initializers
|
2072 |
13.9.2 |
Default argument instantiation for member functions of templates
|
2242 |
6.3 |
ODR violation with constant initialization possibly omitted
|
2392 |
7.7 |
new-expression size check and constant evaluation
|
2407 |
Annex C |
Missing entry in Annex C for defaulted comparison operators
|
2410 |
9.2.6 |
Implicit calls of immediate functions
|
2428 |
13.7.9 |
Deprecating a concept
|
2440 |
7.7 |
Allocation in core constant expressions
|
2443 |
10.2 |
Meaningless template exports
|
2451 |
9.5.4 |
promise.unhandled_exception() and final suspend point
|
2475 |
6.8.2 |
Object declarations of type cv void
|
2478 |
13.9.4 |
Properties of explicit specializations of implicitly-instantiated class templates
|
2483 |
9.11 |
Language linkage of static member functions
|
2489 |
6.7.2 |
Storage provided by array of char
|
2508 |
13.8.2 |
Restrictions on uses of template parameter names
|
2516 |
6.4.2 |
Locus of enum-specifier or opaque-enum-declaration
|
2517 |
7.5.8.5 |
Useless restriction on use of parameter in constraint-expression
|
2518 |
4.1.1 |
Conformance requirements and #error/#warning
|
2520 |
3.53 |
Template signature and default template arguments
|
2521 |
12.6 |
User-defined literals and reserved identifiers
|
2523 |
7.7 |
Undefined behavior via omitted destructor call in constant expressions
|
2526 |
7.6.9 |
Relational comparison of void* pointers
|
2528 |
7.4 |
Three-way comparison and the usual arithmetic conversions
|
2529 |
7.7 |
Constant destruction of constexpr references
|
2530 |
6.3 |
Multiple definitions of enumerators
|
2538 |
9.12.1 |
Can standard attributes be syntactically ignored?
|
2539 |
11.10.3 |
Three-way comparison requiring strong ordering for floating-point types
|
2543 |
9.2.7 |
constinit and optimized dynamic initialization
|
2558 |
7.7 |
Uninitialized subobjects as a result of an immediate invocation
|
2583 |
11.4.1 |
Common initial sequence should consider over-alignment
|
2590 |
9.7.1 |
Underlying type should determine size and alignment requirements of an enum
|
2598 |
6.8.1 |
Unions should not require a non-static data member of literal type
|
2599 |
7.6.1.3 |
What does initializing a parameter include?
|
2601 |
14.3 |
Tracking of created and destroyed subobjects
|
2602 |
9.2.6 |
consteval defaulted functions
|
2603 |
13.7.7.2 |
Holistic functional equivalence for function templates
|
2604 |
13.9.4 |
Attributes for an explicit specialization
|
2605 |
11.2 |
Implicit-lifetime aggregates
|
2610 |
9.4.2 |
Indirect private base classes in aggregates
|
2611 |
13.7.4 |
Missing parentheses in expansion of fold-expression could cause syntactic reinterpretation
|
2612 |
9.4.1 |
Incorrect comment in example
|
2613 |
9.5.4 |
Incomplete definition of resumer
|
2614 |
7.6.1.5 |
Unspecified results for class member access
|
2615 |
15.2 |
Missing __has_cpp_attribute(assume)
|
2616 |
8 |
Imprecise restrictions on break and continue
|
2618 |
13.10.3.1 |
Substitution during deduction should exclude exception specifications
|
2619 |
9.4.2 |
Kind of initialization for a designated-initializer-list
|
2620 |
9.3.3 |
Nonsensical disambiguation rule
|
2621 |
9.7.2 |
Kind of lookup for using enum declarations
|
2622 |
Annex B |
Compounding types from function and pointer-to-member types
|
2624 |
7.6.2.9 |
Array delete expression with no array cookie
|
2625 |
6.7.4 |
Deletion of pointer to out-of-lifetime object
|
2626 |
7.6.2.2 |
Rephrase ones' complement using base-2 representation
|
2627 |
9.4.5 |
Bit-fields and narrowing conversions
|
2629 |
8.5.3 |
Variables of floating-point type as switch conditions
|
2630 |
11.4.1 |
Syntactic specification of class completeness
|
2631 |
7.7 |
Immediate function evaluations in default arguments
|
2635 |
9.1 |
Constrained structured bindings
|
2636 |
Annex E |
Update Annex E based on Unicode 15.0 UAX #31
|
2639 |
5.2 |
new-lines after phase 1
|
2640 |
5.3.1 |
Allow more characters in an n-char sequence
|
2641 |
5.13 |
Redundant specification of value category of literals
|
2642 |
6.5.2 |
Inconsistent use of T and C
|
2643 |
6.8.1 |
Completing a pointer to array of unknown bound
|
2644 |
7.5.6.3 |
Incorrect comment in example
|
2645 |
7.6.1.3 |
Unused term "default argument promotions"
|
2646 |
9.5.2 |
Defaulted special member functions
|
2647 |
7.7 |
Fix for "needed for constant evaluation"
|
2648 |
12.4.4 |
Correspondence of surrogate call function and conversion function
|
2649 |
12.2.2.2.3 |
Incorrect note about implicit conversion sequence
|
2650 |
13.10.3.1 |
Incorrect example for ill-formed non-type template arguments
|
2651 |
13.10.3.4 |
Conversion function templates and "noexcept"
|
2652 |
15.11 |
Overbroad definition of __STDCPP_BFLOAT16_T__
|
2653 |
9.3.4.6 |
Can an explicit object parameter have a default argument?
|
2654 |
7.6.19 |
Un-deprecation of compound volatile assignments
|
2658 |
7.7 |
Trivial copying of unions in core constant expressions
|
2659 |
15.11 |
Missing feature-test macro for lifetime extension in range-for loop
|
2662 |
11.8.1 |
Example for member access control vs. overload resolution
|
2664 |
12.2.2.9 |
Deduction failure in CTAD for alias templates
|
2667 |
15.5 |
Named module imports do not import macros
|
2673 |
12.2.2.3 |
User-declared spaceship vs. built-in operators
|
2674 |
11.4.5.1 |
Prohibit explicit object parameters for constructors
|
2678 |
6.3 |
std::source_location::current is unimplementable
|
2681 |
12.2.2.9 |
Deducing member array type from string literal
|
2682 |
13.1 |
Templated function vs. function template
|
2685 |
12.2.2.9 |
Aggregate CTAD, string, and brace elision
|
2687 |
12.2.2.2.1 |
Calling an explicit object member function via an address-of-overload-set
|
2690 |
11.4.6 |
Semantics of defaulted move assignment operator for unions
|
2691 |
5.13.3 |
hexadecimal-escape-sequence is too greedy
|
2692 |
12.2.2.2.1 |
Static and explicit object member functions with the same parameter-type-lists
|
2695 |
9.12.1 |
Semantic ignorability of attributes
|