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