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