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


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


IssueSectionStatusTitle
18.3.6ready What if two using-declarations refer to the same function but the declarations introduce different default-arguments?
214.6.4open How can dependent names be used in member declarations that appear outside of the class template definition?
314.7.3NAD The template compilation model rules render some explicit specialization declarations not visible during instantiation
47.5drafting Does extern "C" affect the linkage of function names with internal linkage?
58.5drafting CV-qualifiers and type conversions
612.8extension 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?
711.2NAD Can a class with a private virtual base class be derived from?
811open Access to template arguments used in a function return type and in the nested name specifier
911.2review Clarification of access to base class members
1011.8open Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?
117.3.3extension How do the keywords typename/template interact with using-declarations?
123.4.2dup Default arguments on different declarations for the same function and the Koenig lookup
137.5extension extern "C" for Parameters of Function Templates
147.5NAD extern "C" functions and declarations in different namespaces
158.3.6extension Default arguments for parameters of function templates
1611.2review Access to members of indirect private base classes
1711.2NAD Footnote 99 should discuss the naming class when describing members that can be accessed from friends
188.3.5NAD f(TYPE) where TYPE is void should be allowed
1911.5NAD Clarify protected member access
2012.8DR Some clarifications needed for 12.8 para 15
2114.1ready Can a default argument for a template parameter appear in a friend declaration?
2214.6.4DR Template parameter with a default argument that refers to itself
2314.5.5.2open Some questions regarding partial ordering of function templates
2414.7.3DR Errors in examples in 14.7.3
2515.4DR Exception specifications and pointers to members
2612.8NAD Copy constructors and default arguments
2713.6NAD Overload ambiguities for builtin ?: prototypes
283.6.3open 'exit', 'signal' and static object destruction
297.5drafting Linkage of locally declared functions
3014.2DR Valid uses of "::template"
315.3.4NAD Looking up new/delete
3214DR Clarification of explicit instantiation of non-exported templates
333.4.2DR Argument dependent lookup and overloaded functions
3414.7.1NAD Argument dependent lookup and points of instantiation
358.5DR Definition of default-initialization
367.3.3open using-declarations in multiple-declaration contexts
3715.5.3NAD When is uncaught_exception() true?
3814.2review Explicit template arguments and operator functions
3910.2drafting Conflicting ambiguity rules
408.3DR Syntax of declarator-id
413.4.1DR Clarification of lookup of names after declarator-id
423.3.6NAD Redefining names from base classes
433.9DR Copying base classes (PODs) using memcpy
4414.7.3review Member specializations
4511.8review Access to nested classes
4614.7.2NAD Explicit instantiation of member templates
4714.5.3NAD Template friend issues
489.4.2DR Definitions of unused static members
4914.1DR Restriction on non-type, non-value template arguments
503.2NAD Converting pointer to incomplete type to same type
5113.3.3DR Overloading and user-defined conversions
525.2.5ready Non-static members, member selection and access checking
535.2.9ready Lvalue-to-rvalue conversion before certain static_casts
545.2.9NAD Static_cast from private base to derived class
555.7NAD Adding/subtracting pointer and enumeration value
567.1.3DR Redeclaring typedefs within classes
579.5open Empty unions
589.6open Signedness of bit fields of enum type
5913.3.1.4DR Clarification of overloading and UDC to reference type
6013.3.3.1.4open Reference binding and valid conversion sequences
6113.4NAD Address of static member function "&p->f"
6214.3.1drafting Unnamed members of classes used as type parameters
6314.7.1open Class instantiation from pointer conversion to void*, null and self
6414.7.3ready Partial ordering to disambiguate explicit specialization
658.3.6DR Typo in default argument example
668.3.6NAD Visibility of default args vs overloads added after using-declaration
679.4DR Evaluation of left side of object-expression
687.1.5.3review Grammar does not allow "friend class A<int>;"
697.1.1ready Storage class specifiers on template declarations
7014.8.2.4review Is an array bound a nondeduced context?
715NAD Incorrect cross reference
7214dup Linkage and storage class specifiers for templates
735.10ready Pointer equality
745.3.4DR Enumeration value in direct-new-declarator
759.2DR In-class initialized members must be const
767.1.5.1DR Are const volatile variables considered "constant expressions"?
7711.4ready The definition of friend does not allow nested classes to be friends
788.5ready Section 8.5 paragraph 9 should state it only applies to non-static objects
7918.4.1.3dup Alignment and placement new
809.2ready Class members with same name as class
81CNAD Null pointers and C compatability
823.2dup Definition of "using" a constant expression
8313.3.3.2ready Overloading and deprecated conversion of string literal
8413.3.3.1ready Overloading and conversion loophole used by auto_ptr
853.4.4ready Redeclaration of member class
8612.2open Lifetime of temporaries in query expressions
8715.4drafting Exception specifications on function parameters
8814.7.3NAD Specialization of member constant templates
893.8ready Object lifetime does not account for reference rebinding
903.4.2DR Should the enclosing class be an "associated class" too?
913.4.2NAD A union's associated types should include the union itself
9215.4open Should exception specifications be part of the type system?
933.8DR Missing word in 3.8 basic.life paragraph 2
945.19ready Inconsistencies in the descriptions of constant expressions
957.3.1.2NAD Elaborated type specifiers referencing names declared in friend decls
9614.2open Syntactic disambiguation using the template keyword
975.19NAD Use of bool constants in integral constant expressions
9815ready Branching into try block
9914.8.2.1NAD Partial ordering, references and cv-qualifiers
10014.3.2DR Clarify why string literals are not allowed as template arguments
1017.3.3DR Redeclaration of extern "C" names via using-declarations
10213.3.1.2NAD Operator lookup rules do not work well with parts of the library
1037.3.4DR Is it extended-namespace-definition or extension-namespace-definition ?
10415.1NAD Destroying the exception temp when no handler is found
10514ready Meaning of "template function"
106unknownready Creating references to references during template deduction/instantiation
1077.5open Linkage of operator functions
10814.6.2.1ready Are classes nested in templates dependent?
1097.3.3extension Allowing ::template in using-declarations
11014open Can template functions and classes be declared in the same scope?
11112.8open Copy constructors and cv-qualifiers
1128.3.4open Array types and cv-qualifiers
1135.2.2review Visibility of called function
11414.5.2NAD Virtual overriding by template member function specializations
11513.4open Address of template-id
11614.5.5.1DR Equivalent and functionally-equivalent function templates
11712.2NAD Timing of destruction of temporaries
1185.2.2drafting Calls via pointers to virtual member functions
1193.8open Object lifetime and aggregate initialization
12014.6DR Nonexistent non-terminal qualified-name
12114.6ready Dependent type names with non-dependent nested-name-specifiers
1225.1open template-ids as unqualified-ids
1235.1DR Bad cross-reference
12412.2review Lifetime of temporaries in default initialization of class arrays
1255.1drafting Ambiguity in friend declaration syntax
12615.4ready Exception specifications and const
1275.3.4ready Ambiguity in description of matching deallocation function
1285.2.9ready Casting between enum types
1291.9open Stability of uninitialized auto variables
1305.3.4NAD Sequence points and new-expressions
131EDR Typo in Lao characters
1323.5ready Local types and linkage
13315.4dup Exception specifications and checking
13414ready Template classes and declarator-ids
1358.3.5ready Class type in in-class member function definitions
1368.3.6open Default arguments and friend declarations
1375.2.9ready static_cast of cv void*
1387.3.1.2open Friend declaration name lookup
1393.4.1open Error in friend lookup example
1408.3.5review Agreement of parameter declarations
1413.4.5open Non-member function templates in member access expressions
14211.2ready Injection-related errors in access example
1433.4.2drafting Friends and Koenig lookup
1447.1.5.3open Position of friend specifier
145D.1ready Deprecation of prefix ++
1463.9.1open Floating-point zero
1475.1ready Naming the constructor
1489ready POD classes and pointers to members
1494.10ready Accessibility and ambiguity
15014.3.3NAD Template template parameters and default arguments
1518.5review Terminology of zero-initialization
15212.3.1ready explicit copy constructors
15313.3.3.2ready Misleading wording (rank of conversion)
1547.1.1NAD Anonymous unions in unnamed namespaces
1558.5open Brace initializer for scalar
1563.4.5open Name lookup for conversion functions
1577open Omitted typedef declarator
1583.10open Aliasing and qualification conversions
1598.3review Namespace qualification in declarators
1608.2open Missing std:: qualification
16111.5DR Access to protected nested type
16213.3.1.1open (&C::f)() with nonstatic members
1638.5.1DR Description of subaggregate initializer
1643.4.2ready Overlap between Koenig and normal lookup
1657.3.1.2NAD Definitions of friends and block-scope externs
1667.3.1.2ready Friend declarations of template-ids
167D.2NAD Deprecating static functions
1687.5NAD C linkage for static member functions
1697.3.3NAD template-ids in using-declarations
1704.11open Pointer-to-member conversions
1717.3ready Global namespace scope
1727.2open Unsigned int as underlying type of enum
1732.2ready Constraints on execution character set
174D.2NAD Undeprecating global static
1759open Class name injection and base name access
1769ready Name injection and templates
1778.5open Lvalues vs rvalues in copy-initialization
1788.5review More on value-initialization
1795.7ready Function pointers and subtraction
18014.6drafting typename and elaborated types
18114.8.2.4ready Errors in template template-parameter example
18214.7.3open Access checking on explicit specializations
18314.6ready typename in explicit specializations
18414.1open Default arguments in template template-parameters
18512.8ready "Named" temporaries and copy elision
18614.6.1open Name hiding and template template-parameters
18714.1ready Scope of template parameter names
1885.18ready Comma operator and rvalue conversion
1892.12open Definition of operator and punctuator
1909.2ready Layout-compatible POD-struct types
1913.4.1open Name lookup does not handle complex nesting
1923.4.1open Name lookup in parameters
19312.4ready Order of destruction of local automatics of destructor
19412.1ready Identifying constructors
1955.2.10open Converting between function and object pointers
1965.3.5open Arguments to deallocation functions
19714.6.4.2drafting Issues with two-stage lookup of dependent names
1989.8drafting Definition of "use" in local and nested classes
19912.2open Order of destruction of temporaries
20014.5.5.2dup Partial ordering and explicit arguments
20112.2review Order of destruction of temporaries in initializers
20213.4ready Use of overloaded function name
2035.3.1open Type of address-of-member expression
20414open Exported class templates
20514open Templates and static data members
20614.6.3ready Semantic constraints on non-dependent names
20711.2drafting using-declarations and protected access
20815.1review Rethrowing exceptions in nested handlers
20911.4readyMust friend declaration names be accessible?
21015.3ready What is the type matched by an exception handler?
21115NAD Constructors should not be allowed to return normally after an exception
21214.7.1open Implicit instantiation is not described clearly enough
21314.6.2ready Lookup in dependent base classes
21414.5.5.2open Partial ordering of function templates is underspecified
21514.1drafting Template parameters are not allowed in nested-name-specifiers
2163.5drafting Linkage of nameless class-scope enumeration types
2178.3.6ready Default arguments for non-template member functions of class templates
2183.4.2open Specification of Koenig lookup
21915.5.1open Cannot defend against destructors that throw exceptions
2203.7.3.2NAD All deallocation functions should be required not to throw
22113.5.3ready Must compound assignment operators be member functions?
2225open Sequence points and lvalue-returning operators
223Dopen The meaning of deprecation
22414.6.2.1open Definition of dependent names
2253.4.2open Koenig lookup and fundamental types
22614.1open Default template arguments for function templates
2276.4open How many scopes in an if statement?
22814.2open Use of template keyword with non-member templates