C++ Standard Core Language Issue Index by Status, Revision 12


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.




Index by Status




Issues with "Ready" Status:

IssueSectionTitle
18.3.6 What if two using-declarations refer to the same function but the declarations introduce different default-arguments?
2114.1 Can a default argument for a template parameter appear in a friend declaration?
525.2.5 Non-static members, member selection and access checking
535.2.9 Lvalue-to-rvalue conversion before certain static_casts
6414.7.3 Partial ordering to disambiguate explicit specialization
697.1.1 Storage class specifiers on template declarations
735.10 Pointer equality
7711.4 The definition of friend does not allow nested classes to be friends
788.5 Section 8.5 paragraph 9 should state it only applies to non-static objects
809.2 Class members with same name as class
8313.3.3.2 Overloading and deprecated conversion of string literal
8413.3.3.1 Overloading and conversion loophole used by auto_ptr
853.4.4 Redeclaration of member class
893.8 Object lifetime does not account for reference rebinding
945.19 Inconsistencies in the descriptions of constant expressions
9815 Branching into try block
10514 Meaning of "template function"
106unknown Creating references to references during template deduction/instantiation
10814.6.2.1 Are classes nested in templates dependent?
12114.6 Dependent type names with non-dependent nested-name-specifiers
12615.4 Exception specifications and const
1275.3.4 Ambiguity in description of matching deallocation function
1285.2.9 Casting between enum types
1323.5 Local types and linkage
13414 Template classes and declarator-ids
1358.3.5 Class type in in-class member function definitions
1375.2.9 static_cast of cv void*
14211.2 Injection-related errors in access example
145D.1 Deprecation of prefix ++
1475.1 Naming the constructor
1489 POD classes and pointers to members
1494.10 Accessibility and ambiguity
15212.3.1 explicit copy constructors
15313.3.3.2 Misleading wording (rank of conversion)
1643.4.2 Overlap between Koenig and normal lookup
1667.3.1.2 Friend declarations of template-ids
1717.3 Global namespace scope
1732.2 Constraints on execution character set
1769 Name injection and templates
1795.7 Function pointers and subtraction
18114.8.2.4 Errors in template template-parameter example
18314.6 typename in explicit specializations
18512.8 "Named" temporaries and copy elision
18714.1 Scope of template parameter names
1885.18 Comma operator and rvalue conversion
1909.2 Layout-compatible POD-struct types
19312.4 Order of destruction of local automatics of destructor
19412.1 Identifying constructors
20213.4 Use of overloaded function name
20614.6.3 Semantic constraints on non-dependent names
20911.4Must friend declaration names be accessible?
21015.3 What is the type matched by an exception handler?
21314.6.2 Lookup in dependent base classes
2178.3.6 Default arguments for non-template member functions of class templates
22113.5.3 Must compound assignment operators be member functions?


Issues with "Review" Status:

IssueSectionTitle
911.2 Clarification of access to base class members
1611.2 Access to members of indirect private base classes
3814.2 Explicit template arguments and operator functions
4414.7.3 Member specializations
4511.8 Access to nested classes
687.1.5.3 Grammar does not allow "friend class A<int>;"
7014.8.2.4 Is an array bound a nondeduced context?
1135.2.2 Visibility of called function
12412.2 Lifetime of temporaries in default initialization of class arrays
1408.3.5 Agreement of parameter declarations
1518.5 Terminology of zero-initialization
1598.3 Namespace qualification in declarators
1788.5 More on value-initialization
20112.2 Order of destruction of temporaries in initializers
20815.1 Rethrowing exceptions in nested handlers


Issues with "Drafting" Status:

IssueSectionTitle
47.5 Does extern "C" affect the linkage of function names with internal linkage?
58.5 CV-qualifiers and type conversions
297.5 Linkage of locally declared functions
3910.2 Conflicting ambiguity rules
6214.3.1 Unnamed members of classes used as type parameters
8715.4 Exception specifications on function parameters
1185.2.2 Calls via pointers to virtual member functions
1255.1 Ambiguity in friend declaration syntax
1433.4.2 Friends and Koenig lookup
18014.6 typename and elaborated types
19714.6.4.2 Issues with two-stage lookup of dependent names
1989.8 Definition of "use" in local and nested classes
20711.2 using-declarations and protected access
21514.1 Template parameters are not allowed in nested-name-specifiers
2163.5 Linkage of nameless class-scope enumeration types


Issues with "Open" Status:

IssueSectionTitle
214.6.4 How can dependent names be used in member declarations that appear outside of the class template definition?
811 Access to template arguments used in a function return type and in the nested name specifier
1011.8 Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?
2314.5.5.2 Some questions regarding partial ordering of function templates
283.6.3 'exit', 'signal' and static object destruction
367.3.3 using-declarations in multiple-declaration contexts
579.5 Empty unions
589.6 Signedness of bit fields of enum type
6013.3.3.1.4 Reference binding and valid conversion sequences
6314.7.1 Class instantiation from pointer conversion to void*, null and self
8612.2 Lifetime of temporaries in query expressions
9215.4 Should exception specifications be part of the type system?
9614.2 Syntactic disambiguation using the template keyword
1077.5 Linkage of operator functions
11014 Can template functions and classes be declared in the same scope?
11112.8 Copy constructors and cv-qualifiers
1128.3.4 Array types and cv-qualifiers
11513.4 Address of template-id
1193.8 Object lifetime and aggregate initialization
1225.1 template-ids as unqualified-ids
1291.9 Stability of uninitialized auto variables
1368.3.6 Default arguments and friend declarations
1387.3.1.2 Friend declaration name lookup
1393.4.1 Error in friend lookup example
1413.4.5 Non-member function templates in member access expressions
1447.1.5.3 Position of friend specifier
1463.9.1 Floating-point zero
1558.5 Brace initializer for scalar
1563.4.5 Name lookup for conversion functions
1577 Omitted typedef declarator
1583.10 Aliasing and qualification conversions
1608.2 Missing std:: qualification
16213.3.1.1 (&C::f)() with nonstatic members
1704.11 Pointer-to-member conversions
1727.2 Unsigned int as underlying type of enum
1759 Class name injection and base name access
1778.5 Lvalues vs rvalues in copy-initialization
18214.7.3 Access checking on explicit specializations
18414.1 Default arguments in template template-parameters
18614.6.1 Name hiding and template template-parameters
1892.12 Definition of operator and punctuator
1913.4.1 Name lookup does not handle complex nesting
1923.4.1 Name lookup in parameters
1955.2.10 Converting between function and object pointers
1965.3.5 Arguments to deallocation functions
19912.2 Order of destruction of temporaries
2035.3.1 Type of address-of-member expression
20414 Exported class templates
20514 Templates and static data members
21214.7.1 Implicit instantiation is not described clearly enough
21414.5.5.2 Partial ordering of function templates is underspecified
2183.4.2 Specification of Koenig lookup
21915.5.1 Cannot defend against destructors that throw exceptions
2225 Sequence points and lvalue-returning operators
223D The meaning of deprecation
22414.6.2.1 Definition of dependent names
2253.4.2 Koenig lookup and fundamental types
22614.1 Default template arguments for function templates
2276.4 How many scopes in an if statement?
22814.2 Use of template keyword with non-member templates


Issues with "Dup" Status:

IssueSectionTitle
123.4.2 Default arguments on different declarations for the same function and the Koenig lookup
7214 Linkage and storage class specifiers for templates
7918.4.1.3 Alignment and placement new
823.2 Definition of "using" a constant expression
13315.4 Exception specifications and checking
20014.5.5.2 Partial ordering and explicit arguments


Issues with "NAD" Status:

IssueSectionTitle
314.7.3 The template compilation model rules render some explicit specialization declarations not visible during instantiation
711.2 Can a class with a private virtual base class be derived from?
147.5 extern "C" functions and declarations in different namespaces
1711.2 Footnote 99 should discuss the naming class when describing members that can be accessed from friends
188.3.5 f(TYPE) where TYPE is void should be allowed
1911.5 Clarify protected member access
2612.8 Copy constructors and default arguments
2713.6 Overload ambiguities for builtin ?: prototypes
315.3.4 Looking up new/delete
3414.7.1 Argument dependent lookup and points of instantiation
3715.5.3 When is uncaught_exception() true?
423.3.6 Redefining names from base classes
4614.7.2 Explicit instantiation of member templates
4714.5.3 Template friend issues
503.2 Converting pointer to incomplete type to same type
545.2.9 Static_cast from private base to derived class
555.7 Adding/subtracting pointer and enumeration value
6113.4 Address of static member function "&p->f"
668.3.6 Visibility of default args vs overloads added after using-declaration
715 Incorrect cross reference
81C Null pointers and C compatability
8814.7.3 Specialization of member constant templates
913.4.2 A union's associated types should include the union itself
957.3.1.2 Elaborated type specifiers referencing names declared in friend decls
975.19 Use of bool constants in integral constant expressions
9914.8.2.1 Partial ordering, references and cv-qualifiers
10213.3.1.2 Operator lookup rules do not work well with parts of the library
10415.1 Destroying the exception temp when no handler is found
11414.5.2 Virtual overriding by template member function specializations
11712.2 Timing of destruction of temporaries
1305.3.4 Sequence points and new-expressions
15014.3.3 Template template parameters and default arguments
1547.1.1 Anonymous unions in unnamed namespaces
1657.3.1.2 Definitions of friends and block-scope externs
167D.2 Deprecating static functions
1687.5 C linkage for static member functions
1697.3.3 template-ids in using-declarations
174D.2 Undeprecating global static
21115 Constructors should not be allowed to return normally after an exception
2203.7.3.2 All deallocation functions should be required not to throw


Issues with "Extension" Status:

IssueSectionTitle
612.8 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?
117.3.3 How do the keywords typename/template interact with using-declarations?
137.5 extern "C" for Parameters of Function Templates
158.3.6 Default arguments for parameters of function templates
1097.3.3 Allowing ::template in using-declarations


Issues with "DR" Status:

IssueSectionTitle
2012.8 Some clarifications needed for 12.8 para 15
2214.6.4 Template parameter with a default argument that refers to itself
2414.7.3 Errors in examples in 14.7.3
2515.4 Exception specifications and pointers to members
3014.2 Valid uses of "::template"
3214 Clarification of explicit instantiation of non-exported templates
333.4.2 Argument dependent lookup and overloaded functions
358.5 Definition of default-initialization
408.3 Syntax of declarator-id
413.4.1 Clarification of lookup of names after declarator-id
433.9 Copying base classes (PODs) using memcpy
489.4.2 Definitions of unused static members
4914.1 Restriction on non-type, non-value template arguments
5113.3.3 Overloading and user-defined conversions
567.1.3 Redeclaring typedefs within classes
5913.3.1.4 Clarification of overloading and UDC to reference type
658.3.6 Typo in default argument example
679.4 Evaluation of left side of object-expression
745.3.4 Enumeration value in direct-new-declarator
759.2 In-class initialized members must be const
767.1.5.1 Are const volatile variables considered "constant expressions"?
903.4.2 Should the enclosing class be an "associated class" too?
933.8 Missing word in 3.8 basic.life paragraph 2
10014.3.2 Clarify why string literals are not allowed as template arguments
1017.3.3 Redeclaration of extern "C" names via using-declarations
1037.3.4 Is it extended-namespace-definition or extension-namespace-definition ?
11614.5.5.1 Equivalent and functionally-equivalent function templates
12014.6 Nonexistent non-terminal qualified-name
1235.1 Bad cross-reference
131E Typo in Lao characters
16111.5 Access to protected nested type
1638.5.1 Description of subaggregate initializer