This document contains a summary listing of all the C++ Core Language
Issues in numerical order.
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.
Issue | Section | Status | Title |
1 | 8.3.6 | ready |
What if two using-declarations refer to the same function but the declarations introduce different default-arguments?
|
2 | 14.6.4 | open |
How can dependent names be used in member declarations that appear outside of the class template definition?
|
3 | 14.7.3 | NAD |
The template compilation model rules render some explicit specialization declarations not visible during instantiation
|
4 | 7.5 | drafting |
Does extern "C" affect the linkage of function names with internal linkage?
|
5 | 8.5 | drafting |
CV-qualifiers and type conversions
|
6 | 12.8 | extension |
Should the optimization that allows a class object to alias another object also allow the case of a parameter in an inline function to alias its argument?
|
7 | 11.2 | NAD |
Can a class with a private virtual base class be derived from?
|
8 | 11 | open |
Access to template arguments used in a function return type and in the nested name specifier
|
9 | 11.2 | review |
Clarification of access to base class members
|
10 | 11.8 | open |
Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?
|
11 | 7.3.3 | extension |
How do the keywords typename/template interact with using-declarations?
|
12 | 3.4.2 | dup |
Default arguments on different declarations for the same function and the Koenig lookup
|
13 | 7.5 | extension |
extern "C" for Parameters of Function Templates
|
14 | 7.5 | NAD |
extern "C" functions and declarations in different namespaces
|
15 | 8.3.6 | extension |
Default arguments for parameters of function templates
|
16 | 11.2 | review |
Access to members of indirect private base classes
|
17 | 11.2 | NAD |
Footnote 99 should discuss the naming class when describing members that can be accessed from friends
|
18 | 8.3.5 | NAD |
f(TYPE) where TYPE is void should be allowed
|
19 | 11.5 | NAD |
Clarify protected member access
|
20 | 12.8 | DR |
Some clarifications needed for 12.8 para 15
|
21 | 14.1 | ready |
Can a default argument for a template parameter appear in a friend declaration?
|
22 | 14.6.4 | DR |
Template parameter with a default argument that refers to itself
|
23 | 14.5.5.2 | open |
Some questions regarding partial ordering of function templates
|
24 | 14.7.3 | DR |
Errors in examples in 14.7.3
|
25 | 15.4 | DR |
Exception specifications and pointers to members
|
26 | 12.8 | NAD |
Copy constructors and default arguments
|
27 | 13.6 | NAD |
Overload ambiguities for builtin ?: prototypes
|
28 | 3.6.3 | open |
'exit', 'signal' and static object destruction
|
29 | 7.5 | drafting |
Linkage of locally declared functions
|
30 | 14.2 | DR |
Valid uses of "::template"
|
31 | 5.3.4 | NAD |
Looking up new/delete
|
32 | 14 | DR |
Clarification of explicit instantiation of non-exported templates
|
33 | 3.4.2 | DR |
Argument dependent lookup and overloaded functions
|
34 | 14.7.1 | NAD |
Argument dependent lookup and points of instantiation
|
35 | 8.5 | DR |
Definition of default-initialization
|
36 | 7.3.3 | open |
using-declarations in multiple-declaration contexts
|
37 | 15.5.3 | NAD |
When is uncaught_exception() true?
|
38 | 14.2 | review |
Explicit template arguments and operator functions
|
39 | 10.2 | drafting |
Conflicting ambiguity rules
|
40 | 8.3 | DR |
Syntax of declarator-id
|
41 | 3.4.1 | DR |
Clarification of lookup of names after declarator-id
|
42 | 3.3.6 | NAD |
Redefining names from base classes
|
43 | 3.9 | DR |
Copying base classes (PODs) using memcpy
|
44 | 14.7.3 | review |
Member specializations
|
45 | 11.8 | review |
Access to nested classes
|
46 | 14.7.2 | NAD |
Explicit instantiation of member templates
|
47 | 14.5.3 | NAD |
Template friend issues
|
48 | 9.4.2 | DR |
Definitions of unused static members
|
49 | 14.1 | DR |
Restriction on non-type, non-value template arguments
|
50 | 3.2 | NAD |
Converting pointer to incomplete type to same type
|
51 | 13.3.3 | DR |
Overloading and user-defined conversions
|
52 | 5.2.5 | ready |
Non-static members, member selection and access checking
|
53 | 5.2.9 | ready |
Lvalue-to-rvalue conversion before certain static_casts
|
54 | 5.2.9 | NAD |
Static_cast from private base to derived class
|
55 | 5.7 | NAD |
Adding/subtracting pointer and enumeration value
|
56 | 7.1.3 | DR |
Redeclaring typedefs within classes
|
57 | 9.5 | open |
Empty unions
|
58 | 9.6 | open |
Signedness of bit fields of enum type
|
59 | 13.3.1.4 | DR |
Clarification of overloading and UDC to reference type
|
60 | 13.3.3.1.4 | open |
Reference binding and valid conversion sequences
|
61 | 13.4 | NAD |
Address of static member function "&p->f"
|
62 | 14.3.1 | drafting |
Unnamed members of classes used as type parameters
|
63 | 14.7.1 | open |
Class instantiation from pointer conversion to void*, null and self
|
64 | 14.7.3 | ready |
Partial ordering to disambiguate explicit specialization
|
65 | 8.3.6 | DR |
Typo in default argument example
|
66 | 8.3.6 | NAD |
Visibility of default args vs overloads added after using-declaration
|
67 | 9.4 | DR |
Evaluation of left side of object-expression
|
68 | 7.1.5.3 | review |
Grammar does not allow "friend class A<int>;"
|
69 | 7.1.1 | ready |
Storage class specifiers on template declarations
|
70 | 14.8.2.4 | review |
Is an array bound a nondeduced context?
|
71 | 5 | NAD |
Incorrect cross reference
|
72 | 14 | dup |
Linkage and storage class specifiers for templates
|
73 | 5.10 | ready |
Pointer equality
|
74 | 5.3.4 | DR |
Enumeration value in direct-new-declarator
|
75 | 9.2 | DR |
In-class initialized members must be const
|
76 | 7.1.5.1 | DR |
Are const volatile variables considered "constant expressions"?
|
77 | 11.4 | ready |
The definition of friend does not allow nested classes to be friends
|
78 | 8.5 | ready |
Section 8.5 paragraph 9 should state it only applies to non-static objects
|
79 | 18.4.1.3 | dup |
Alignment and placement new
|
80 | 9.2 | ready |
Class members with same name as class
|
81 | C | NAD |
Null pointers and C compatability
|
82 | 3.2 | dup |
Definition of "using" a constant expression
|
83 | 13.3.3.2 | ready |
Overloading and deprecated conversion of string literal
|
84 | 13.3.3.1 | ready |
Overloading and conversion loophole used by auto_ptr
|
85 | 3.4.4 | ready |
Redeclaration of member class
|
86 | 12.2 | open |
Lifetime of temporaries in query expressions
|
87 | 15.4 | review |
Exception specifications on function parameters
|
88 | 14.7.3 | NAD |
Specialization of member constant templates
|
89 | 3.8 | ready |
Object lifetime does not account for reference rebinding
|
90 | 3.4.2 | DR |
Should the enclosing class be an "associated class" too?
|
91 | 3.4.2 | NAD |
A union's associated types should include the union itself
|
92 | 15.4 | open |
Should exception specifications be part of the type system?
|
93 | 3.8 | DR |
Missing word in 3.8 basic.life paragraph 2
|
94 | 5.19 | ready |
Inconsistencies in the descriptions of constant expressions
|
95 | 7.3.1.2 | NAD |
Elaborated type specifiers referencing names declared in friend decls
|
96 | 14.2 | open |
Syntactic disambiguation using the template keyword
|
97 | 5.19 | NAD |
Use of bool constants in integral constant expressions
|
98 | 15 | ready |
Branching into try block
|
99 | 14.8.2.1 | NAD |
Partial ordering, references and cv-qualifiers
|
100 | 14.3.2 | DR |
Clarify why string literals are not allowed as template arguments
|
101 | 7.3.3 | DR |
Redeclaration of extern "C" names via using-declarations
|
102 | 13.3.1.2 | NAD |
Operator lookup rules do not work well with parts of the library
|
103 | 7.3.4 | DR |
Is it extended-namespace-definition or extension-namespace-definition ?
|
104 | 15.1 | NAD |
Destroying the exception temp when no handler is found
|
105 | 14 | ready |
Meaning of "template function"
|
106 | unknown | review |
Creating references to references during template deduction/instantiation
|
107 | 7.5 | open |
Linkage of operator functions
|
108 | 14.6.2.1 | ready |
Are classes nested in templates dependent?
|
109 | 7.3.3 | extension |
Allowing ::template in using-declarations
|
110 | 14 | open |
Can template functions and classes be declared in the same scope?
|
111 | 12.8 | open |
Copy constructors and cv-qualifiers
|
112 | 8.3.4 | open |
Array types and cv-qualifiers
|
113 | 5.2.2 | review |
Visibility of called function
|
114 | 14.5.2 | NAD |
Virtual overriding by template member function specializations
|
115 | 13.4 | open |
Address of template-id
|
116 | 14.5.5.1 | DR |
Equivalent and functionally-equivalent function templates
|
117 | 12.2 | NAD |
Timing of destruction of temporaries
|
118 | 5.2.2 | drafting |
Calls via pointers to virtual member functions
|
119 | 3.8 | open |
Object lifetime and aggregate initialization
|
120 | 14.6 | DR |
Nonexistent non-terminal qualified-name
|
121 | 14.6 | ready |
Dependent type names with non-dependent nested-name-specifiers
|
122 | 5.1 | open |
template-ids as unqualified-ids
|
123 | 5.1 | DR |
Bad cross-reference
|
124 | 12.2 | review |
Lifetime of temporaries in default initialization of class arrays
|
125 | 5.1 | drafting |
Ambiguity in friend declaration syntax
|
126 | 15.4 | ready |
Exception specifications and const
|
127 | 5.3.4 | ready |
Ambiguity in description of matching deallocation function
|
128 | 5.2.9 | ready |
Casting between enum types
|
129 | 1.9 | open |
Stability of uninitialized auto variables
|
130 | 5.3.4 | NAD |
Sequence points and new-expressions
|
131 | E | DR |
Typo in Lao characters
|
132 | 3.5 | ready |
Local types and linkage
|
133 | 15.4 | dup |
Exception specifications and checking
|
134 | 14 | ready |
Template classes and declarator-ids
|
135 | 8.3.5 | ready |
Class type in in-class member function definitions
|
136 | 8.3.6 | open |
Default arguments and friend declarations
|
137 | 5.2.9 | ready |
static_cast of cv void*
|
138 | 7.3.1.2 | open |
Friend declaration name lookup
|
139 | 3.4.1 | open |
Error in friend lookup example
|
140 | 8.3.5 | review |
Agreement of parameter declarations
|
141 | 3.4.5 | open |
Non-member function templates in member access expressions
|
142 | 11.2 | ready |
Injection-related errors in access example
|
143 | 3.4.2 | drafting |
Friends and Koenig lookup
|
144 | 7.1.5.3 | open |
Position of friend specifier
|
145 | D.1 | ready |
Deprecation of prefix ++
|
146 | 3.9.1 | open |
Floating-point zero
|
147 | 5.1 | ready |
Naming the constructor
|
148 | 9 | ready |
POD classes and pointers to members
|
149 | 4.10 | ready |
Accessibility and ambiguity
|
150 | 14.3.3 | NAD |
Template template parameters and default arguments
|
151 | 8.5 | review |
Terminology of zero-initialization
|
152 | 12.3.1 | ready |
explicit copy constructors
|
153 | 13.3.3.2 | ready |
Misleading wording (rank of conversion)
|
154 | 7.1.1 | NAD |
Anonymous unions in unnamed namespaces
|
155 | 8.5 | open |
Brace initializer for scalar
|
156 | 3.4.5 | open |
Name lookup for conversion functions
|
157 | 7 | open |
Omitted typedef declarator
|
158 | 3.10 | open |
Aliasing and qualification conversions
|
159 | 8.3 | review |
Namespace qualification in declarators
|
160 | 8.2 | open |
Missing std:: qualification
|
161 | 11.5 | DR |
Access to protected nested type
|
162 | 13.3.1.1 | open |
(&C::f)() with nonstatic members
|
163 | 8.5.1 | DR |
Description of subaggregate initializer
|
164 | 3.4.2 | ready |
Overlap between Koenig and normal lookup
|
165 | 7.3.1.2 | NAD |
Definitions of friends and block-scope externs
|
166 | 7.3.1.2 | ready |
Friend declarations of template-ids
|
167 | D.2 | NAD |
Deprecating static functions
|
168 | 7.5 | NAD |
C linkage for static member functions
|
169 | 7.3.3 | NAD |
template-ids in using-declarations
|
170 | 4.11 | open |
Pointer-to-member conversions
|
171 | 7.3 | ready |
Global namespace scope
|
172 | 7.2 | open |
Unsigned int as underlying type of enum
|
173 | 2.2 | ready |
Constraints on execution character set
|
174 | D.2 | NAD |
Undeprecating global static
|
175 | 9 | open |
Class name injection and base name access
|
176 | 9 | ready |
Name injection and templates
|
177 | 8.5 | open |
Lvalues vs rvalues in copy-initialization
|
178 | 8.5 | review |
More on value-initialization
|
179 | 5.7 | ready |
Function pointers and subtraction
|
180 | 14.6 | drafting |
typename and elaborated types
|
181 | 14.8.2.4 | ready |
Errors in template template-parameter example
|
182 | 14.7.3 | open |
Access checking on explicit specializations
|
183 | 14.6 | ready |
typename in explicit specializations
|
184 | 14.1 | open |
Default arguments in template template-parameters
|
185 | 12.8 | ready |
"Named" temporaries and copy elision
|
186 | 14.6.1 | open |
Name hiding and template template-parameters
|
187 | 14.1 | ready |
Scope of template parameter names
|
188 | 5.18 | ready |
Comma operator and rvalue conversion
|
189 | 2.12 | open |
Definition of operator and punctuator
|
190 | 9.2 | ready |
Layout-compatible POD-struct types
|
191 | 3.4.1 | open |
Name lookup does not handle complex nesting
|
192 | 3.4.1 | open |
Name lookup in parameters
|
193 | 12.4 | ready |
Order of destruction of local automatics of destructor
|
194 | 12.1 | ready |
Identifying constructors
|
195 | 5.2.10 | open |
Converting between function and object pointers
|
196 | 5.3.5 | open |
Arguments to deallocation functions
|
197 | 14.6.4.2 | drafting |
Issues with two-stage lookup of dependent names
|
198 | 9.8 | drafting |
Definition of "use" in local and nested classes
|
199 | 12.2 | open |
Order of destruction of temporaries
|
200 | 14.5.5.2 | dup |
Partial ordering and explicit arguments
|
201 | 12.2 | review |
Order of destruction of temporaries in initializers
|
202 | 13.4 | ready |
Use of overloaded function name
|
203 | 5.3.1 | open |
Type of address-of-member expression
|
204 | 14 | open |
Exported class templates
|
205 | 14 | open |
Templates and static data members
|
206 | 14.6.3 | ready |
Semantic constraints on non-dependent names
|
207 | 11.2 | drafting |
using-declarations and protected access
|
208 | 15.1 | review |
Rethrowing exceptions in nested handlers
|
209 | 11.4 | ready | Must friend declaration names be
accessible? |
210 | 15.3 | ready |
What is the type matched by an exception handler?
|
211 | 15 | NAD |
Constructors should not be allowed to return normally after an exception
|
212 | 14.7.1 | open |
Implicit instantiation is not described clearly enough
|
213 | 14.6.2 | ready |
Lookup in dependent base classes
|
214 | 14.5.5.2 | open |
Partial ordering of function templates is underspecified
|
215 | 14.1 | drafting |
Template parameters are not allowed in nested-name-specifiers
|
216 | 3.5 | review |
Linkage of nameless class-scope enumeration types
|
217 | 8.3.6 | ready |
Default arguments for non-template member functions of class templates
|
218 | 3.4.2 | open |
Specification of Koenig lookup
|
219 | 15.5.1 | open |
Cannot defend against destructors that throw exceptions
|
220 | 3.7.3.2 | NAD |
All deallocation functions should be required not to throw
|
221 | 13.5.3 | ready |
Must compound assignment operators be member functions?
|
222 | 5 | open |
Sequence points and lvalue-returning operators
|
223 | D | open |
The meaning of deprecation
|
224 | 14.6.2.1 | open |
Definition of dependent names
|
225 | 3.4.2 | open |
Koenig lookup and fundamental types
|
226 | 14.1 | open |
Default template arguments for function templates
|
227 | 6.4 | open |
How many scopes in an if statement?
|
228 | 14.2 | open |
Use of template keyword with non-member templates
|
229 | 14.5.4 | open |
Partial specialization of function templates
|
230 | 10.4 | open |
Calls to pure virtual functions
|
231 | 3.4.1 | open |
Visibility of names after using-directives
|
232 | 5.3.1 | open |
Is indirection through a null pointer undefined behavior?
|
233 | 8.5.3 | open |
References vs pointers in UDC overload resolution
|
234 | 3.8 | open |
Reuse of base class subobjects
|
235 | 12.6.2 | open |
Assignment vs initialization
|
236 | 5.19 | open |
Explicit temporaries and integral constant expressions
|
237 | 14.7.2 | open |
Explicit instantiation and base class members
|
238 | 5 | open |
Precision and accuracy constraints on floating point
|
239 | 13.3.1.1.1 | open |
Footnote 116 and Koenig lookup
|
240 | 4.1 | open |
Uninitialized values and undefined behavior
|
241 | 14.8.1 | open |
Error in example in 14.8.1
|
242 | 5.4 | open |
Interpretation of old-style casts
|
243 | 13.3.3.1.2 | open |
Weighting of conversion functions in direct-initialization
|
244 | 12.4 | open |
Destructor lookup
|
245 | 3.4.4 | open |
Name lookup in elaborated-type-specifiers
|