C++ Standard Core Language Issue Table of Contents, Revision 10


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.




Table of Contents


Issue Section Status Title
1 8.3.6 review What if two using-declarations refer to the same function but the declarations introduce different default-arguments?
2 14.6.4 drafting 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 review 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 drafting '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 review Using-declarations in multiple-declaration contexts
37 15.5.3 NAD When is uncaught_exception() true?
38 14.2 drafting 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 open 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 drafting Non-static members, member selection and access checking
53 5.2.9 drafting 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 review Class instantiation from pointer conversion to void*, null and self
64 14.7.3 review 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 drafting Grammar does not allow "friend class A<int>;"
69 7.1.1 review 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 drafting 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 drafting The definition of friend does not allow nested classes to be friends
78 8.5 review 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 review 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 review Overloading and deprecated conversion of string literal
84 13.3.3.1 open Overloading and conversion loophole used by auto_ptr
85 3.4.4 review Redeclaration of member class
86 12.2 open Lifetime of temporaries in query expressions
87 15.4 drafting Exception specifications on function parameters
88 14.7.3 NAD Specialization of member constant templates
89 3.8 drafting 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 drafting 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 review 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 review Meaning of "template function"
106 unknown drafting Creating references to references during template deduction/instantiation
107 7.5 open Linkage of operator functions
108 14.6.2.1 drafting 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 drafting 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 drafting 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 drafting Lifetime of temporaries in default initialization of class arrays
125 5.1 drafting Ambiguity in friend declaration syntax
126 15.4 drafting Exception specifications and const
127 5.3.4 drafting Ambiguity in description of matching deallocation function
128 5.2.9 review 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 review Local types and linkage
133 15.4 dup Exception specifications and checking
134 14 drafting Template classes and declarator-ids
135 8.3.5 review Class type in in-class member function definitions
136 8.3.6 open Default arguments and friend declarations
137 5.2.9 review 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 drafting Agreement of parameter declarations
141 3.4.5 open Non-member function templates in member access expressions
142 11.2 drafting 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 drafting Deprecation of prefix ++
146 3.9.1 open Floating-point zero
147 5.1 review Naming the constructor
148 9 open POD classes and pointers to members
149 4.10 review 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 review explicit copy constructors
153 13.3.3.2 review 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 review Overlap between Koenig and normal lookup
165 7.3.1.2 NAD Definitions of friends and block-scope externs
166 7.3.1.2 review Friend declarations of template-ids
167 D.2 review 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 review Global namespace scope
172 7.2 open Unsigned int as underlying type of enum
173 2.2 review Constraints on execution character set
174 D.2 open Undeprecating global static
175 9 open Class name injection and base name access
176 9 open 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 open Function pointers and subtraction
180 14.6 open typename and elaborated types
181 14.8.2.4 open Errors in template template-parameter example
182 14.7.3 open Access checking on explicit specializations
183 14.6 open typename in explicit specializations
184 14.1 open Default arguments in template template-parameters
185 12.8 open "Named" temporaries and copy elision
186 14.6.1 open Name hiding and template template-parameters
187 14.1 open Scope of template parameter names
188 5.18 open Comma operator and rvalue conversion
189 2.12 open Definition of operator and punctuator
190 9.2 open 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 open Order of destruction of local automatics of destructor
194 12.1 open 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 open Issues with two-stage lookup of dependent names
198 9.8 open Definition of "use" in local and nested classes
199 12.2 open Order of destruction of temporaries
200 14.5.5.2 open Partial ordering and explicit arguments
201 12.2 open Order of destruction of temporaries in initializers
202 13.4 open 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 open Semantic constraints on non-dependent names
207 11.2 open using-declarations and protected access
208 15.1 open Rethrowing exceptions in nested handlers
209 11.4 open Must friend declaration names be accessible?
210 15.3 open What is the type matched by an exception handler?
211 15 open 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 open Lookup in dependent base classes
214 14.5.5.2 open Partial ordering of function templates is underspecified
215 14.1 open Template parameters are not allowed in nested-name-specifiers
216 3.5 open Linkage of nameless class-scope enumeration types