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