C++ Standard Core Language Issue Index by Section, Revision 20


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.




Index by Section


SectionIssueStatusTitle
1.9129open Stability of uninitialized auto variables
2.2173DR Constraints on execution character set
2.12189open Definition of operator and punctuator
3309open Linkage of entities whose names are not simply identifiers, in introduction
3.250NAD Converting pointer to incomplete type to same type
3.282dup Definition of "using" a constant expression
3.2261review When is a deallocation function "used?"
3.2289review Incomplete list of contexts requiring a complete type
3.3.642NAD Redefining names from base classes
3.4.141DR Clarification of lookup of names after declarator-id
3.4.1139DR Error in friend lookup example
3.4.1191open Name lookup does not handle complex nesting
3.4.1192open Name lookup in parameters
3.4.1231open Visibility of names after using-directives
3.4.212dup Default arguments on different declarations for the same function and the Koenig lookup
3.4.233DR Argument dependent lookup and overloaded functions
3.4.290DR Should the enclosing class be an "associated class" too?
3.4.291NAD A union's associated types should include the union itself
3.4.2143ready Friends and Koenig lookup
3.4.2164DR Overlap between Koenig and normal lookup
3.4.2218open Specification of Koenig lookup
3.4.2225drafting Koenig lookup and fundamental types
3.4.3.1298review T::x when T is cv-qualified
3.4.485DR Redeclaration of member class
3.4.4245drafting Name lookup in elaborated-type-specifiers
3.4.4254drafting Definitional problems with elaborated-type-specifiers
3.4.5141open Non-member function templates in member access expressions
3.4.5156drafting Name lookup for conversion functions
3.4.5305drafting Name lookup in destructor call
3.5132NAD Local types and linkage
3.5216DR Linkage of nameless class-scope enumeration types
3.5278open External linkage and nameless entities
3.5279open Correspondence of "names for linkage purposes"
3.6.2269NAD Order of initialization of multiply-defined static data members of class templates
3.6.2270ready Order of initialization of static data members of class templates
3.6.328open 'exit', 'signal' and static object destruction
3.7.3.2220NAD All deallocation functions should be required not to throw
3.7.3.2312open "use" of invalid pointer value not defined
3.889DR Object lifetime does not account for reference rebinding
3.893DR Missing word in 3.8 basic.life paragraph 2
3.8119ready Object lifetime and aggregate initialization
3.8234NAD Reuse of base class subobjects
3.8274review Cv-qualification and char-alias access to out-of-lifetime objects
3.943DR Copying base classes (PODs) using memcpy
3.9290open Should memcpy be allowed into a POD with a const member?
3.9.1146open Floating-point zero
3.9.1251open How many signed integer types are there?
3.10158ready Aliasing and qualification conversions
4.1240open Uninitialized values and undefined behavior
4.5303NAD Integral promotions on bit-fields
4.10149DR Accessibility and ambiguity
4.11170open Pointer-to-member conversions
571NAD Incorrect cross reference
5222open Sequence points and lvalue-returning operators
5238open Precision and accuracy constraints on floating point
5.1122DR template-ids as unqualified-ids
5.1123DR Bad cross-reference
5.1125drafting Ambiguity in friend declaration syntax
5.1147DR Naming the constructor
5.2.2113DR Visibility of called function
5.2.2118drafting Calls via pointers to virtual member functions
5.2.552DR Non-static members, member selection and access checking
5.2.8282open Namespace for extended_type_info
5.2.953DR Lvalue-to-rvalue conversion before certain static_casts
5.2.954NAD Static_cast from private base to derived class
5.2.9128DR Casting between enum types
5.2.9137DR static_cast of cv void*
5.2.9294NAD Can static_cast drop exception specifications?
5.2.10195open Converting between function and object pointers
5.3.1203open Type of address-of-member expression
5.3.1232open Is indirection through a null pointer undefined behavior?
5.3.431NAD Looking up new/delete
5.3.474DR Enumeration value in direct-new-declarator
5.3.4127DR Ambiguity in description of matching deallocation function
5.3.4130NAD Sequence points and new-expressions
5.3.4256NAD Overflow in size calculations
5.3.4267open Alignment requirement for new-expressions
5.3.4292open Deallocation on exception in new before arguments evaluated
5.3.4299open Conversion on array bound expression in new
5.3.4313open Class with single conversion function to integral as array size in new
5.3.5196open Arguments to deallocation functions
5.3.5265open Destructors, exceptions, and deallocation
5.3.5288open Misuse of "static type" in describing pointers
5.4242open Interpretation of old-style casts
5.755NAD Adding/subtracting pointer and enumeration value
5.7179DR Function pointers and subtraction
5.1073DR Pointer equality
5.18188DR Comma operator and rvalue conversion
5.1994DR Inconsistencies in the descriptions of constant expressions
5.1997NAD Use of bool constants in integral constant expressions
5.19236open Explicit temporaries and integral constant expressions
6.4227DR How many scopes in an if statement?
6.6276open Order of destruction of parameters and temporaries
7157open Omitted typedef declarator
7.1.169DR Storage class specifiers on template declarations
7.1.1154NAD Anonymous unions in unnamed namespaces
7.1.2281review inline specifier in friend declarations
7.1.356DR Redeclaring typedefs within classes
7.1.5.176DR Are const volatile variables considered "constant expressions"?
7.1.5.2283drafting Template type-parameters are not syntactically type-names
7.1.5.368DR Grammar does not allow "friend class A<int>;"
7.1.5.3144open Position of friend specifier
7.2172review Unsigned int as underlying type of enum
7.3171DR Global namespace scope
7.3.1311open Using qualified name to reopen nested namespace
7.3.1.295NAD Elaborated type specifiers referencing names declared in friend decls
7.3.1.2138drafting Friend declaration name lookup
7.3.1.2165NAD Definitions of friends and block-scope externs
7.3.1.2166DR Friend declarations of template-ids
7.3.311extension How do the keywords typename/template interact with using-declarations?
7.3.336open using-declarations in multiple-declaration contexts
7.3.3101DR Redeclaration of extern "C" names via using-declarations
7.3.3109extension Allowing ::template in using-declarations
7.3.3169NAD template-ids in using-declarations
7.3.3258review using-declarations and cv-qualifiers
7.3.4103DR Is it extended-namespace-definition or extension-namespace-definition ?
7.54DR Does extern "C" affect the linkage of function names with internal linkage?
7.513extension extern "C" for Parameters of Function Templates
7.514NAD extern "C" functions and declarations in different namespaces
7.529DR Linkage of locally declared functions
7.5107NAD Linkage of operator functions
7.5168NAD C linkage for static member functions
8.2160DR Missing std:: qualification
8.340DR Syntax of declarator-id
8.3159DR Namespace qualification in declarators
8.3.4112DR Array types and cv-qualifiers
8.3.518NAD f(TYPE) where TYPE is void should be allowed
8.3.5135DR Class type in in-class member function definitions
8.3.5140DR Agreement of parameter declarations
8.3.5262drafting Default arguments and ellipsis
8.3.5295review cv-qualifiers on function types
8.3.61DR What if two using-declarations refer to the same function but the declarations introduce different default-arguments?
8.3.615extension Default arguments for parameters of function templates
8.3.665DR Typo in default argument example
8.3.666NAD Visibility of default args vs overloads added after using-declaration
8.3.6136DR Default arguments and friend declarations
8.3.6217DR Default arguments for non-template member functions of class templates
8.55DR CV-qualifiers and type conversions
8.535DR Definition of default-initialization
8.578DR Section 8.5 paragraph 9 should state it only applies to non-static objects
8.5151DR Terminology of zero-initialization
8.5155open Brace initializer for scalar
8.5177ready Lvalues vs rvalues in copy-initialization
8.5178DR More on value-initialization
8.5253open Why must empty or fully-initialized const objects be initialized?
8.5277DR Zero-initialization of pointers
8.5302review Value-initialization and generation of default constructor
8.5304review Value-initialization of a reference
8.5.1163DR Description of subaggregate initializer
8.5.3233open References vs pointers in UDC overload resolution
8.5.3291open Overload resolution needed when binding reference to class rvalue
9148DR POD classes and pointers to members
9175DR Class name injection and base name access
9176DR Name injection and templates
9273review POD classes and operator&()
9284review qualified-ids in class declarations
9.275DR In-class initialized members must be const
9.280DR Class members with same name as class
9.2190DR Layout-compatible POD-struct types
9.467DR Evaluation of left side of object-expression
9.4.248DR Definitions of unused static members
9.557open Empty unions
9.658open Signedness of bit fields of enum type
9.8198review Definition of "use" in local and nested classes
10.239review Conflicting ambiguity rules
10.2306drafting Ambiguity by class name injection
10.4230open Calls to pure virtual functions
118DR Access to template arguments used in a function return type and in the nested name specifier
11.27NAD Can a class with a private virtual base class be derived from?
11.29DR Clarification of access to base class members
11.216DR Access to members of indirect private base classes
11.217NAD Footnote 99 should discuss the naming class when describing members that can be accessed from friends
11.2142DR Injection-related errors in access example
11.2207DR using-declarations and protected access
11.477ready The definition of friend does not allow nested classes to be friends
11.4209NADMust friend declaration names be accessible?
11.519NAD Clarify protected member access
11.5161DR Access to protected nested type
11.810DR Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?
11.845DR Access to nested classes
12.1194DR Identifying constructors
12.1263drafting Can a constructor be declared a friend?
12.286drafting Lifetime of temporaries in query expressions
12.2117NAD Timing of destruction of temporaries
12.2124DR Lifetime of temporaries in default initialization of class arrays
12.2199open Order of destruction of temporaries
12.2201DR Order of destruction of temporaries in initializers
12.3.1152DR explicit copy constructors
12.3.2296open Can conversion functions be static?
12.4193DR Order of destruction of local automatics of destructor
12.4244drafting Destructor lookup
12.4252DR Looking up deallocation functions in virtual destructors
12.4255open Placement deallocation functions and lookup ambiguity
12.4272DR Explicit destructor invocation and qualified-ids
12.6.2235DR Assignment vs initialization
12.6.2257open Abstract base constructors and virtual base initialization
12.7307NAD Initialization of a virtual base class subobject
12.86extension 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.820DR Some clarifications needed for 12.8 para 15
12.826NAD Copy constructors and default arguments
12.8111open Copy constructors and cv-qualifiers
12.8185DR "Named" temporaries and copy elision
13.3.1.1162review (&C::f)() with nonstatic members
13.3.1.1.1239DR Footnote 116 and Koenig lookup
13.3.1.1.2280review Access and surrogate call functions
13.3.1.2102NAD Operator lookup rules do not work well with parts of the library
13.3.1.459DR Clarification of overloading and UDC to reference type
13.3.351DR Overloading and user-defined conversions
13.3.3.184DR Overloading and conversion loophole used by auto_ptr
13.3.3.1.2243NAD Weighting of conversion functions in direct-initialization
13.3.3.1.460review Reference binding and valid conversion sequences
13.3.3.283DR Overloading and deprecated conversion of string literal
13.3.3.2153DR Misleading wording (rank of conversion)
13.461NAD Address of static member function "&p->f"
13.4115review Address of template-id
13.4202DR Use of overloaded function name
13.4247NAD Pointer-to-member casts and function overload resolution
13.4250DR Address of function template specialization with non-deduced template arguments
13.5.3221DR Must compound assignment operators be member functions?
13.627NAD Overload ambiguities for builtin ?: prototypes
13.6260open User-defined conversions and built-in operator=
1432DR Clarification of explicit instantiation of non-exported templates
1472dup Linkage and storage class specifiers for templates
14105DR Meaning of "template function"
14110open Can template functions and classes be declared in the same scope?
14134DR Template classes and declarator-ids
14204open Exported class templates
14205open Templates and static data members
14.121DR Can a default argument for a template parameter appear in a friend declaration?
14.149DR Restriction on non-type, non-value template arguments
14.1184open Default arguments in template template-parameters
14.1187DR Scope of template parameter names
14.1215drafting Template parameters are not allowed in nested-name-specifiers
14.1226review Default template arguments for function templates
14.230DR Valid uses of "::template"
14.238DR Explicit template arguments and operator functions
14.296open Syntactic disambiguation using the template keyword
14.2228open Use of template keyword with non-member templates
14.2301drafting Syntax for template-name
14.3246DR Jumps in function-try-block handlers
14.3.162DR Unnamed members of classes used as type parameters
14.3.2100DR Clarify why string literals are not allowed as template arguments
14.3.3150NAD Template template parameters and default arguments
14.5.1.1249DR What is a member function template?
14.5.2114NAD Virtual overriding by template member function specializations
14.5.347NAD Template friend issues
14.5.4229open Partial specialization of function templates
14.5.4286ready Incorrect example in partial specialization
14.5.5.1116DR Equivalent and functionally-equivalent function templates
14.5.5.1310open Can function templates differing only in parameter cv-qualifiers be overloaded?
14.5.5.223open Some questions regarding partial ordering of function templates
14.5.5.2200dup Partial ordering and explicit arguments
14.5.5.2214open Partial ordering of function templates is underspecified
14.6120DR Nonexistent non-terminal qualified-name
14.6121DR Dependent type names with non-dependent nested-name-specifiers
14.6180ready typename and elaborated types
14.6183DR typename in explicit specializations
14.6.1186open Name hiding and template template-parameters
14.6.2213DR Lookup in dependent base classes
14.6.2.1108DR Are classes nested in templates dependent?
14.6.2.1224DR Definition of dependent names
14.6.3206DR Semantic constraints on non-dependent names
14.6.42open How can dependent names be used in member declarations that appear outside of the class template definition?
14.6.422DR Template parameter with a default argument that refers to itself
14.6.4.1287review Order dependencies in template instantiation
14.6.4.2197drafting Issues with two-stage lookup of dependent names
14.7259ready Restrictions on explicit specialization and instantiation
14.7.134NAD Argument dependent lookup and points of instantiation
14.7.163review Class instantiation from pointer conversion to void*, null and self
14.7.1212open Implicit instantiation is not described clearly enough
14.7.246NAD Explicit instantiation of member templates
14.7.2237open Explicit instantiation and base class members
14.7.2293open Syntax of explicit instantiation/specialization too permissive
14.7.33NAD The template compilation model rules render some explicit specialization declarations not visible during instantiation
14.7.324DR Errors in examples in 14.7.3
14.7.344DR Member specializations
14.7.364DR Partial ordering to disambiguate explicit specialization
14.7.388NAD Specialization of member constant templates
14.7.3182open Access checking on explicit specializations
14.7.3275ready Explicit instantiation/specialization and using-directives
14.7.3285NAD Identifying a function template being specialized
14.8.1241DR Error in example in 14.8.1
14.8.1264open Unusable template constructors and conversion functions
14.8.2271open Explicit instantiation and template argument deduction
14.8.2297open Which template does an explicit specialization specialize?
14.8.2.199NAD Partial ordering, references and cv-qualifiers
14.8.2.470DR Is an array bound a nondeduced context?
14.8.2.4181DR Errors in template template-parameter example
14.8.2.4300review References to functions in template argument deduction
1598DR Branching into try block
15211NAD Constructors should not be allowed to return normally after an exception
15.1104NAD Destroying the exception temp when no handler is found
15.1208DR Rethrowing exceptions in nested handlers
15.3210DR What is the type matched by an exception handler?
15.3308NAD Catching exceptions with ambiguous base classes
15.425DR Exception specifications and pointers to members
15.487DR Exception specifications on function parameters
15.492open Should exception specifications be part of the type system?
15.4126DR Exception specifications and const
15.4133dup Exception specifications and checking
15.5.1219open Cannot defend against destructors that throw exceptions
15.5.337NAD When is uncaught_exception() true?
16.3.4268open Macro name suppression in rescanned replacement text
18.4.1.379dup Alignment and placement new
A266NAD No grammar sentence symbol
C81NAD Null pointers and C compatability
D223open The meaning of deprecation
D.1145DR Deprecation of prefix ++
D.2167NAD Deprecating static functions
D.2174NAD Undeprecating global static
E131DR Typo in Lao characters
E248open Identifier characters
unknown106DR Creating references to references during template deduction/instantiation