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.3 |
357 |
WP |
Definition of signature should include name
|
| 1.3 |
449 |
NAD |
Consistency in use of hyphen with names of "non" entities
|
| 1.3 |
537 |
WP |
Definition of “signature”
|
| 1.3 |
616 |
open |
Definition of “indeterminate value”
|
| 1.3 |
690 |
drafting |
The dynamic type of an rvalue reference
|
| 1.8 |
513 |
WP |
Non-class “most-derived” objects
|
| 1.9 |
129 |
open |
Stability of uninitialized auto variables
|
| 1.9 |
612 |
drafting |
Requirements on a conforming implementation
|
| 1.9 |
637 |
ready |
Sequencing rules and example disagree
|
| 1.9 |
639 |
ready |
What makes side effects “different” from one another?
|
| 2.1 |
362 |
WP |
Order of initialization in instantiation units
|
| 2.1 |
578 |
open |
Phase 1 replacement of characters with universal-character-names
|
| 2.2 |
173 |
TC1 |
Constraints on execution character set
|
| 2.2 |
558 |
WP |
Excluded characters in universal character names
|
| 2.2 |
630 |
drafting |
Equality of narrow and wide character values in the basic character set
|
| 2.4 |
369 |
drafting |
Are new/delete identifiers or preprocessing-op-or-punc?
|
| 2.12 |
189 |
drafting |
Definition of operator and punctuator
|
| 2.13.2 |
505 |
WP |
Conditionally-supported behavior for unknown character escapes
|
| 2.13.4 |
411 |
open |
Use of universal-character-name in character versus string literals
|
| 3 |
309 |
review |
Linkage of entities whose names are not simply identifiers, in introduction
|
| 3 |
485 |
DR |
What is a “name”?
|
| 3 |
633 |
review |
Specifications for variables that should also apply to references
|
| 3.1 |
676 |
drafting |
static_assert-declarations and general requirements for declarations
|
| 3.2 |
50 |
NAD |
Converting pointer to incomplete type to same type
|
| 3.2 |
82 |
dup |
Definition of "using" a constant expression
|
| 3.2 |
261 |
WP |
When is a deallocation function "used?"
|
| 3.2 |
289 |
WP |
Incomplete list of contexts requiring a complete type
|
| 3.2 |
570 |
review |
Are references subject to the ODR?
|
| 3.2 |
678 |
drafting |
Language linkage of member function parameter types and the ODR
|
| 3.3 |
481 |
open |
Scope of template parameters
|
| 3.3 |
554 |
review |
Definition of “declarative region” and “scope”
|
| 3.3.1 |
433 |
WP |
Do elaborated type specifiers in templates inject into enclosing namespace scope?
|
| 3.3.2 |
642 |
review |
Definition and use of “block scope” and “local scope”
|
| 3.3.6 |
42 |
NAD |
Redefining names from base classes
|
| 3.3.6 |
432 |
WP |
Is injected class name visible in base class specifier list?
|
| 3.4 |
555 |
review |
Pseudo-destructor name lookup
|
| 3.4.1 |
41 |
TC1 |
Clarification of lookup of names after declarator-id
|
| 3.4.1 |
139 |
WP |
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.1 |
231 |
NAD |
Visibility of names after using-directives
|
| 3.4.1 |
405 |
open |
Unqualified function name lookup
|
| 3.4.1 |
490 |
drafting |
Name lookup in friend declarations
|
| 3.4.1 |
514 |
WP |
Is the initializer for a namespace member in the scope of the namespace?
|
| 3.4.2 |
12 |
dup |
Default arguments on different declarations for the same function and the Koenig lookup
|
| 3.4.2 |
33 |
TC1 |
Argument dependent lookup and overloaded functions
|
| 3.4.2 |
90 |
TC1 |
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 |
WP |
Friends and Koenig lookup
|
| 3.4.2 |
164 |
TC1 |
Overlap between Koenig and normal lookup
|
| 3.4.2 |
218 |
WP |
Specification of Koenig lookup
|
| 3.4.2 |
225 |
drafting |
Koenig lookup and fundamental types
|
| 3.4.2 |
321 |
open |
Associated classes and namespaces for argument-dependent lookup
|
| 3.4.2 |
384 |
NAD |
Argument-dependent lookup and operator functions
|
| 3.4.2 |
403 |
WP |
Reference to a type as a template-id
|
| 3.4.2 |
557 |
WP |
Does argument-dependent lookup cause template instantiation?
|
| 3.4.2 |
598 |
review |
Associated namespaces of overloaded functions and function templates
|
| 3.4.3.1 |
298 |
WP |
T::x when T is cv-qualified
|
| 3.4.3.1 |
318 |
WP |
struct A::A should not name the constructor of A
|
| 3.4.3.1 |
562 |
open |
qualified-ids in non-expression contexts
|
| 3.4.3.1 |
635 |
NAD |
Names of constructors and destructors of templates
|
| 3.4.3.2 |
400 |
WP |
Using-declarations and the "struct hack"
|
| 3.4.4 |
85 |
TC1 |
Redeclaration of member class
|
| 3.4.4 |
245 |
WP |
Name lookup in elaborated-type-specifiers
|
| 3.4.4 |
254 |
WP |
Definitional problems with elaborated-type-specifiers
|
| 3.4.5 |
141 |
DR |
Non-member function templates in member access expressions
|
| 3.4.5 |
156 |
drafting |
Name lookup for conversion functions
|
| 3.4.5 |
305 |
WP |
Name lookup in destructor call
|
| 3.4.5 |
381 |
WP |
Incorrect example of base class member lookup
|
| 3.4.5 |
414 |
WP |
Multiple types found on destructor lookup
|
| 3.4.5 |
682 |
drafting |
Missing description of lookup of template aliases
|
| 3.4.6 |
373 |
review |
Lookup on namespace qualified name in using-directive
|
| 3.5 |
132 |
NAD |
Local types and linkage
|
| 3.5 |
216 |
WP |
Linkage of nameless class-scope enumeration types
|
| 3.5 |
278 |
open |
External linkage and nameless entities
|
| 3.5 |
279 |
open |
Correspondence of "names for linkage purposes"
|
| 3.5 |
319 |
WP |
Use of names without linkage in declaring entities with linkage
|
| 3.5 |
338 |
open |
Enumerator name with linkage used as class name in other translation unit
|
| 3.5 |
389 |
WP |
Unnamed types in entities with linkage
|
| 3.5 |
426 |
drafting |
Identically-named variables, one internally and one externally linked, allowed?
|
| 3.5 |
474 |
WP |
Block-scope extern declarations in namespace members
|
| 3.5 |
527 |
drafting |
Problems with linkage of types
|
| 3.5 |
571 |
review |
References declared const
|
| 3.6.2 |
269 |
NAD |
Order of initialization of multiply-defined static data members
of class templates
|
| 3.6.2 |
270 |
WP |
Order of initialization of static data members of class templates
|
| 3.6.2 |
371 |
open |
Interleaving of constructor calls
|
| 3.6.2 |
441 |
WP |
Ordering of static reference initialization
|
| 3.6.2 |
465 |
NAD |
May constructors of global objects call exit()?
|
| 3.6.2 |
688 |
review |
Constexpr constructors and static initialization
|
| 3.6.3 |
28 |
DR |
'exit', 'signal' and static object destruction
|
| 3.6.3 |
640 |
open |
Accessing destroyed local objects of static storage duration
|
| 3.7 |
365 |
open |
Storage duration and temporaries
|
| 3.7.3.1 |
521 |
WP |
Requirements for exceptions thrown by allocation functions
|
| 3.7.3.2 |
220 |
review |
All deallocation functions should be required not to throw
|
| 3.7.3.2 |
312 |
open |
“use” of invalid pointer value not defined
|
| 3.7.3.2 |
348 |
WP |
delete and user-written deallocation functions
|
| 3.7.3.2 |
523 |
open |
Can a one-past-the-end pointer be invalidated by deleting an adjacent object?
|
| 3.7.3.2 |
623 |
extension |
Use of pointers to deallocated storage
|
| 3.8 |
89 |
TC1 |
Object lifetime does not account for reference rebinding
|
| 3.8 |
93 |
TC1 |
Missing word in 3.8 basic.life paragraph 2
|
| 3.8 |
119 |
WP |
Object lifetime and aggregate initialization
|
| 3.8 |
234 |
NAD |
Reuse of base class subobjects
|
| 3.8 |
274 |
WP |
Cv-qualification and char-alias access to out-of-lifetime objects
|
| 3.8 |
404 |
WP |
Unclear reference to construction with non-trivial constructor
|
| 3.8 |
419 |
open |
Can cast to virtual base class be done on partially-constructed object?
|
| 3.8 |
594 |
ready |
Coordinating issues 119 and 404 with delegating constructors
|
| 3.8 |
597 |
review |
Conversions applied to out-of-lifetime non-POD lvalues
|
| 3.9 |
43 |
TC1 |
Copying base classes (PODs) using memcpy
|
| 3.9 |
290 |
NAD |
Should memcpy be allowed into a POD with a const member?
|
| 3.9 |
350 |
drafting |
signed char underlying representation for objects
|
| 3.9 |
496 |
open |
Is a volatile-qualified type really a POD?
|
| 3.9 |
619 |
review |
Completeness of array types
|
| 3.9 |
644 |
DR |
Should a trivial class type be a literal type?
|
| 3.9 |
646 |
NAD |
Can a class with a constexpr copy constructor be a literal type?
|
| 3.9.1 |
146 |
open |
Floating-point zero
|
| 3.9.1 |
251 |
open |
How many signed integer types are there?
|
| 3.9.1 |
483 |
open |
Normative requirements on integral ranges
|
| 3.9.1 |
627 |
NAD |
Values behaving as types
|
| 3.9.1 |
689 |
open |
Maximum values of signed and unsigned integers
|
| 3.10 |
158 |
WP |
Aliasing and qualification conversions
|
| 3.10 |
584 |
NAD |
Unions and aliasing
|
| 3.10 |
636 |
drafting |
Dynamic type of objects and aliasing
|
| 3.11 |
649 |
ready |
Optionally ill-formed extended alignment requests
|
| 4 |
572 |
review |
Standard conversions for non-built-in types
|
| 4.1 |
240 |
review |
Uninitialized values and undefined behavior
|
| 4.1 |
617 |
drafting |
Lvalue-to-rvalue conversions of uninitialized char objects
|
| 4.2 |
693 |
review |
New string types and deprecated conversion
|
| 4.4 |
330 |
open |
Qualification conversions and pointers to arrays of pointers
|
| 4.5 |
303 |
NAD |
Integral promotions on bit-fields
|
| 4.5 |
685 |
drafting |
Integral promotion of enumeration ignores fixed underlying type
|
| 4.9 |
566 |
NAD |
Conversion of negative floating point values to integer type
|
| 4.10 |
149 |
TC1 |
Accessibility and ambiguity
|
| 4.10 |
456 |
NAD |
Is initialized const int or const bool variable a null pointer constant?
|
| 4.10 |
519 |
WP |
Null pointer preservation in void* conversions
|
| 4.10 |
654 |
DR |
Conversions to and from nullptr_t
|
| 4.11 |
170 |
drafting |
Pointer-to-member conversions
|
| 4.11 |
480 |
WP |
Is a base of a virtual base also virtual?
|
| 5 |
71 |
NAD |
Incorrect cross reference
|
| 5 |
222 |
review |
Sequence points and lvalue-returning operators
|
| 5 |
238 |
open |
Precision and accuracy constraints on floating point
|
| 5 |
351 |
WP |
Sequence point error: unspecified or undefined?
|
| 5 |
438 |
open |
Possible flaw in wording for multiple accesses to object between sequence points
|
| 5 |
451 |
WP |
Expressions with invalid results and ill-formedness
|
| 5 |
695 |
open |
Compile-time calculation errors in constexpr functions
|
| 5.1 |
122 |
WP |
template-ids as unqualified-ids
|
| 5.1 |
123 |
TC1 |
Bad cross-reference
|
| 5.1 |
125 |
WP |
Ambiguity in friend declaration syntax
|
| 5.1 |
147 |
TC1 |
Naming the constructor
|
| 5.1 |
536 |
drafting |
Problems in the description of id-expressions
|
| 5.1 |
687 |
open |
template keyword with unqualified-ids
|
| 5.2.2 |
113 |
WP |
Visibility of called function
|
| 5.2.2 |
118 |
DR |
Calls via pointers to virtual member functions
|
| 5.2.2 |
506 |
WP |
Conditionally-supported behavior for non-POD objects passed to ellipsis
|
| 5.2.2 |
634 |
ready |
Conditionally-supported behavior for non-POD objects passed to ellipsis redux
|
| 5.2.4 |
466 |
WP |
cv-qualifiers on pseudo-destructor type
|
| 5.2.5 |
52 |
TC1 |
Non-static members, member selection and access checking
|
| 5.2.5 |
421 |
WP |
Is rvalue.field an rvalue?
|
| 5.2.7 |
665 |
review |
Problems in the specification of dynamic_cast
|
| 5.2.8 |
282 |
open |
Namespace for extended_type_info
|
| 5.2.8 |
492 |
WP |
typeid constness inconsistent with example
|
| 5.2.8 |
528 |
open |
Why are incomplete class types not allowed with typeid?
|
| 5.2.9 |
53 |
TC1 |
Lvalue-to-rvalue conversion before certain static_casts
|
| 5.2.9 |
54 |
WP |
Static_cast from private base to derived class
|
| 5.2.9 |
128 |
TC1 |
Casting between enum types
|
| 5.2.9 |
137 |
TC1 |
static_cast of cv void*
|
| 5.2.9 |
294 |
NAD |
Can static_cast drop exception specifications?
|
| 5.2.9 |
427 |
WP |
static_cast ambiguity: conversion versus cast to derived
|
| 5.2.9 |
439 |
WP |
Guarantees on casting pointer back to cv-qualified version of original type
|
| 5.2.9 |
671 |
ready |
Explicit conversion from a scoped enumeration type to integral type
|
| 5.2.10 |
195 |
WP |
Converting between function and object pointers
|
| 5.2.10 |
463 |
WP |
reinterpret_cast<T*>(0)
|
| 5.2.10 |
573 |
review |
Conversions between function pointers and void*
|
| 5.2.10 |
658 |
review |
Defining reinterpret_cast for pointer types
|
| 5.3 |
342 |
review |
Terminology: "indirection" versus "dereference"
|
| 5.3.1 |
203 |
open |
Type of address-of-member expression
|
| 5.3.1 |
232 |
drafting |
Is indirection through a null pointer undefined behavior?
|
| 5.3.1 |
324 |
WP |
Can "&" be applied to assignment to bit-field?
|
| 5.3.1 |
610 |
NAD |
Computing the negative of 0U
|
| 5.3.4 |
31 |
NAD |
Looking up new/delete
|
| 5.3.4 |
74 |
TC1 |
Enumeration value in direct-new-declarator
|
| 5.3.4 |
127 |
TC1 |
Ambiguity in description of matching deallocation function
|
| 5.3.4 |
130 |
NAD |
Sequence points and new-expressions
|
| 5.3.4 |
256 |
open |
Overflow in size calculations
|
| 5.3.4 |
267 |
open |
Alignment requirement for new-expressions
|
| 5.3.4 |
292 |
review |
Deallocation on exception in new before arguments evaluated
|
| 5.3.4 |
299 |
WP |
Conversion on array bound expression in new
|
| 5.3.4 |
313 |
dup |
Class with single conversion function to integral as array size in new
|
| 5.3.4 |
429 |
WP |
Matching deallocation function chosen based on syntax or signature?
|
| 5.3.4 |
473 |
open |
Block-scope declarations of allocator functions
|
| 5.3.4 |
476 |
open |
Determining the buffer size for placement new
|
| 5.3.4 |
624 |
review |
Overflow in calculating size of allocation
|
| 5.3.4 |
672 |
review |
Sequencing of initialization in new-expressions
|
| 5.3.5 |
196 |
open |
Arguments to deallocation functions |
| 5.3.5 |
265 |
open |
Destructors, exceptions, and deallocation
|
| 5.3.5 |
288 |
DR |
Misuse of "static type" in describing pointers
|
| 5.3.5 |
353 |
WP |
Is deallocation routine called if destructor throws exception in delete?
|
| 5.3.5 |
442 |
WP |
Incorrect use of null pointer constant in description of delete operator
|
| 5.3.5 |
599 |
review |
Deleting a null function pointer
|
| 5.3.6 |
659 |
ready |
Alignment of function types
|
| 5.4 |
242 |
open |
Interpretation of old-style casts
|
| 5.4 |
520 |
WP |
Old-style casts between incomplete class types
|
| 5.5 |
497 |
WP |
Missing required initialization in example
|
| 5.6 |
614 |
open |
Results of integer / and %
|
| 5.7 |
55 |
NAD |
Adding/subtracting pointer and enumeration value
|
| 5.7 |
179 |
TC1 |
Function pointers and subtraction
|
| 5.7 |
567 |
NAD |
Can size_t and ptrdiff_t be larger than long?
|
| 5.9 |
583 |
open |
Relational pointer comparisons against the null pointer constant
|
| 5.9 |
622 |
extension |
Relational comparisons of arbitrary pointers
|
| 5.9 |
661 |
DR |
Semantics of arithmetic comparisons
|
| 5.10 |
73 |
TC1 |
Pointer equality
|
| 5.16 |
446 |
WP |
Does an lvalue-to-rvalue conversion on the "?" operator produce a temporary?
|
| 5.16 |
587 |
drafting |
Lvalue operands of a conditional expression differing only in cv-qualification
|
| 5.17 |
556 |
review |
Conflicting requirements for acceptable aliasing
|
| 5.18 |
188 |
TC1 |
Comma operator and rvalue conversion
|
| 5.19 |
94 |
TC1 |
Inconsistencies in the descriptions of constant expressions
|
| 5.19 |
97 |
NAD |
Use of bool constants in integral constant expressions
|
| 5.19 |
236 |
review |
Explicit temporaries and integral constant expressions
|
| 5.19 |
339 |
DR |
Overload resolution in operand of sizeof in constant expression
|
| 5.19 |
366 |
WP |
String literal allowed in integral constant expression?
|
| 5.19 |
367 |
WP |
throw operator allowed in constant expression?
|
| 5.19 |
457 |
WP |
Wording nit on use of const variables in constant expressions
|
| 5.19 |
487 |
NAD |
Operator overloading in constant expressions
|
| 5.19 |
530 |
WP |
Nontype template arguments in constant expressions
|
| 5.19 |
652 |
drafting |
Compile-time evaluation of floating-point expressions
|
| 5.19 |
684 |
review |
Constant expressions involving the address of an automatic variable
|
| 6.4 |
227 |
TC1 |
How many scopes in an if statement?
|
| 6.4.1 |
631 |
open |
Jumping into a “then” clause
|
| 6.6 |
276 |
DR |
Order of destruction of parameters and temporaries
|
| 6.6 |
378 |
review |
Wording that says temporaries are declared
|
| 6.7 |
467 |
NAD |
Jump past initialization of local static variable
|
| 7 |
157 |
open |
Omitted typedef declarator
|
| 7 |
435 |
NAD |
Change "declararation or definition" to "declaration"
|
| 7 |
569 |
review |
Spurious semicolons at namespace scope should be allowed
|
| 7.1.1 |
69 |
TC1 |
Storage class specifiers on template declarations
|
| 7.1.1 |
154 |
NAD |
Anonymous unions in unnamed namespaces
|
| 7.1.1 |
498 |
open |
Storage class specifiers in definitions of class members
|
| 7.1.2 |
281 |
WP |
inline specifier in friend declarations
|
| 7.1.2 |
317 |
WP |
Can a function be declared inline after it has been called?
|
| 7.1.2 |
376 |
NAD |
Class "definition" versus class "declaration"
|
| 7.1.2 |
396 |
WP |
Misleading note regarding use of auto for disambiguation
|
| 7.1.2 |
397 |
WP |
Same address for string literals from default arguments in inline functions?
|
| 7.1.2 |
412 |
NAD |
Can a replacement allocation function be inline?
|
| 7.1.2 |
477 |
WP |
Can virtual appear in a friend declaration?
|
| 7.1.3 |
56 |
TC1 |
Redeclaring typedefs within classes
|
| 7.1.3 |
407 |
drafting |
Named class with associated typedef: two names or one?
|
| 7.1.3 |
422 |
NAD |
Is a typedef redeclaration allowed with a template type that might be the same?
|
| 7.1.3 |
424 |
WP |
Wording problem with issue 56 resolution on redeclaring typedefs in class scope
|
| 7.1.3 |
576 |
review |
Typedefs in function definitions
|
| 7.1.5 |
647 |
ready |
Non-constexpr instances of constexpr constructor templates
|
| 7.1.5 |
648 |
ready |
Constant expressions in constexpr initializers
|
| 7.1.6 |
539 |
review |
Constraints on type-specifier-seq
|
| 7.1.6.1 |
76 |
TC1 |
Are const volatile variables considered "constant expressions"?
|
| 7.1.6.1 |
609 |
open |
What is a “top-level” cv-qualifier?
|
| 7.1.6.2 |
283 |
WP |
Template type-parameters are not syntactically type-names
|
| 7.1.6.2 |
516 |
WP |
Use of signed in bit-field declarations
|
| 7.1.6.2 |
643 |
NAD |
Use of decltype in a class member-specification
|
| 7.1.6.2 |
651 |
ready |
Problems in decltype specification and examples
|
| 7.1.6.2 |
669 |
NAD |
Confusing specification of the meaning of decltype
|
| 7.1.6.3 |
68 |
TC1 |
Grammar does not allow "friend class A<int>;"
|
| 7.1.6.3 |
144 |
open |
Position of friend specifier
|
| 7.1.6.4 |
625 |
drafting |
Use of auto as a template-argument
|
| 7.1.6.4 |
629 |
WP |
auto parsing ambiguity
|
| 7.2 |
172 |
WP |
Unsigned int as underlying type of enum
|
| 7.2 |
377 |
WP |
Enum whose enumerators will not fit in any integral type
|
| 7.2 |
518 |
WP |
Trailing comma following enumerator-list
|
| 7.2 |
628 |
review |
The values of an enumeration with no enumerator
|
| 7.2 |
660 |
ready |
Unnamed scoped enumerations
|
| 7.3 |
171 |
TC1 |
Global namespace scope
|
| 7.3.1 |
311 |
NAD |
Using qualified name to reopen nested namespace
|
| 7.3.1 |
540 |
WP |
Propagation of cv-qualifiers in reference-to-reference collapse
|
| 7.3.1.2 |
95 |
NAD |
Elaborated type specifiers referencing names declared in friend decls
|
| 7.3.1.2 |
138 |
drafting |
Friend declaration name lookup
|
| 7.3.1.2 |
165 |
NAD |
Definitions of friends and block-scope externs
|
| 7.3.1.2 |
166 |
TC1 |
Friend declarations of template-ids
|
| 7.3.1.2 |
553 |
NAD |
Problems with friend allocation and deallocation functions
|
| 7.3.1.2 |
673 |
open |
Injection of names from elaborated-type-specifiers in friend declarations
|
| 7.3.3 |
11 |
WP |
How do the keywords typename/template interact with using-declarations?
|
| 7.3.3 |
36 |
open |
using-declarations in multiple-declaration contexts
|
| 7.3.3 |
101 |
TC1 |
Redeclaration of extern "C" names via using-declarations
|
| 7.3.3 |
109 |
NAD |
Allowing ::template in using-declarations
|
| 7.3.3 |
169 |
NAD |
template-ids in using-declarations
|
| 7.3.3 |
258 |
WP |
using-declarations and cv-qualifiers
|
| 7.3.3 |
386 |
open |
Friend declaration of name brought in by using-declaration
|
| 7.3.3 |
460 |
WP |
Can a using-declaration name a namespace?
|
| 7.3.3 |
565 |
open |
Conflict rules for using-declarations naming function templates
|
| 7.3.4 |
103 |
TC1 |
Is it extended-namespace-definition or extension-namespace-definition ?
|
| 7.4 |
461 |
NAD |
Make asm conditionally-supported
|
| 7.5 |
4 |
WP |
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 |
WP |
Linkage of locally declared functions
|
| 7.5 |
107 |
NAD |
Linkage of operator functions
|
| 7.5 |
168 |
NAD |
C linkage for static member functions
|
| 7.5 |
341 |
review |
extern "C" namespace member function versus global variable
|
| 7.5 |
358 |
NAD |
Namespaces and extern "C"
|
| 7.5 |
563 |
open |
Linkage specification for objects
|
| 7.5 |
564 |
review |
Agreement of language linkage or linkage-specifications?
|
| 8.1 |
686 |
ready |
Type declarations/definitions in type-specifier-seqs and type-ids
|
| 8.2 |
160 |
WP |
Missing std:: qualification
|
| 8.2 |
333 |
NAD |
Ambiguous use of "declaration" in disambiguation section
|
| 8.2 |
340 |
NAD |
Unclear wording in disambiguation section |
| 8.3 |
40 |
TC1 |
Syntax of declarator-id
|
| 8.3 |
159 |
TC1 |
Namespace qualification in declarators
|
| 8.3 |
374 |
drafting |
Can explicit specialization outside namespace use qualified name?
|
| 8.3 |
482 |
review |
Qualified declarators in redeclarations
|
| 8.3 |
548 |
dup |
qualified-ids in declarations
|
| 8.3.2 |
453 |
drafting |
References may only bind to “valid” objects
|
| 8.3.2 |
504 |
open |
Should use of a reference in its own initializer require a diagnostic?
|
| 8.3.4 |
112 |
WP |
Array types and cv-qualifiers
|
| 8.3.4 |
478 |
NAD |
May a function parameter be an array of an abstract class type?
|
| 8.3.5 |
18 |
NAD |
f(TYPE) where TYPE is void should be allowed
|
| 8.3.5 |
135 |
TC1 |
Class type in in-class member function definitions
|
| 8.3.5 |
140 |
WP |
Agreement of parameter declarations
|
| 8.3.5 |
262 |
WP |
Default arguments and ellipsis
|
| 8.3.5 |
295 |
WP |
cv-qualifiers on function types
|
| 8.3.5 |
332 |
open |
cv-qualified void parameter types
|
| 8.3.5 |
393 |
drafting |
Pointer to array of unknown bound in template argument list in parameter
|
| 8.3.5 |
547 |
review |
Partial specialization on member function types
|
| 8.3.5 |
550 |
open |
Pointer to array of unknown bound in parameter declarations
|
| 8.3.5 |
577 |
open |
void in an empty parameter list
|
| 8.3.5 |
681 |
review |
Restrictions on declarators with late-specified return types
|
| 8.3.6 |
1 |
TC1 |
What if two using-declarations refer to the same function but the declarations introduce different default-arguments?
|
| 8.3.6 |
15 |
dup |
Default arguments for parameters of function templates
|
| 8.3.6 |
65 |
TC1 |
Typo in default argument example
|
| 8.3.6 |
66 |
NAD |
Visibility of default args vs overloads added after using-declaration
|
| 8.3.6 |
136 |
WP |
Default arguments and friend declarations
|
| 8.3.6 |
217 |
TC1 |
Default arguments for non-template member functions of class templates
|
| 8.3.6 |
325 |
open |
When are default arguments parsed?
|
| 8.3.6 |
361 |
open |
Forward reference to default argument
|
| 8.5 |
5 |
WP |
CV-qualifiers and type conversions
|
| 8.5 |
35 |
TC1 |
Definition of default-initialization
|
| 8.5 |
78 |
WP |
Section 8.5 paragraph 9 should state it only applies to non-static objects
|
| 8.5 |
151 |
TC1 |
Terminology of zero-initialization
|
| 8.5 |
155 |
dup |
Brace initializer for scalar
|
| 8.5 |
177 |
WP |
Lvalues vs rvalues in copy-initialization
|
| 8.5 |
178 |
TC1 |
More on value-initialization
|
| 8.5 |
253 |
open |
Why must empty or fully-initialized const objects be initialized?
|
| 8.5 |
277 |
WP |
Zero-initialization of pointers
|
| 8.5 |
302 |
WP |
Value-initialization and generation of default constructor
|
| 8.5 |
304 |
TC1 |
Value-initialization of a reference
|
| 8.5 |
508 |
drafting |
Non-constructed value-initialized objects
|
| 8.5 |
509 |
open |
Dead code in the specification of default initialization
|
| 8.5 |
543 |
review |
Value initialization and default constructors
|
| 8.5 |
611 |
open |
Zero-initializing references
|
| 8.5 |
615 |
review |
Incorrect description of variables that can be initialized
|
| 8.5 |
670 |
open |
Copy initialization via derived-to-base conversion in the second step
|
| 8.5 |
694 |
open |
Zero- and value-initialization of union objects
|
| 8.5.1 |
163 |
TC1 |
Description of subaggregate initializer
|
| 8.5.1 |
430 |
WP |
Ordering of expression evaluation in initializer list
|
| 8.5.1 |
491 |
WP |
Initializers for empty-class aggregrate members
|
| 8.5.1 |
632 |
review |
Brace-enclosed initializer for scalar member of aggregate
|
| 8.5.3 |
233 |
drafting |
References vs pointers in UDC overload resolution
|
| 8.5.3 |
291 |
WP |
Overload resolution needed when binding reference to class rvalue
|
| 8.5.3 |
391 |
WP |
Require direct binding of short-lived references to rvalues
|
| 8.5.3 |
434 |
NAD |
Unclear suppression of standard conversions while binding reference to lvalue
|
| 8.5.3 |
450 |
WP |
Binding a reference to const to a cv-qualified array rvalue
|
| 8.5.3 |
589 |
drafting |
Direct binding of class and array rvalues in reference initialization
|
| 8.5.3 |
656 |
open |
Direct binding to the result of a conversion operator
|
| 8.5.3 |
664 |
drafting |
Direct binding of references to non-class rvalue references
|
| 9 |
148 |
TC1 |
POD classes and pointers to members
|
| 9 |
175 |
WP |
Class name injection and base name access
|
| 9 |
176 |
TC1 |
Name injection and templates
|
| 9 |
273 |
WP |
POD classes and operator&()
|
| 9 |
284 |
WP |
qualified-ids in class declarations
|
| 9 |
327 |
WP |
Use of "structure" without definition
|
| 9 |
355 |
review |
Global-scope :: in nested-name-specifier
|
| 9 |
379 |
WP |
Change "class declaration" to "class definition"
|
| 9 |
383 |
WP |
Is a class with a declared but not defined destructor a POD?
|
| 9 |
413 |
WP |
Definition of "empty class"
|
| 9 |
511 |
open |
POD-structs with template assignment operators
|
| 9 |
538 |
WP |
Definition and usage
of structure, POD-struct, POD-union,
and POD class
|
| 9 |
568 |
WP |
Definition of POD is too strict
|
| 9.1 |
417 |
WP |
Using derived-class qualified name in out-of-class nested class definition
|
| 9.2 |
75 |
TC1 |
In-class initialized members must be const
|
| 9.2 |
80 |
TC1 |
Class members with same name as class
|
| 9.2 |
190 |
TC1 |
Layout-compatible POD-struct types
|
| 9.2 |
328 |
WP |
Missing requirement that class member types be complete
|
| 9.2 |
437 |
WP |
Is type of class allowed in member function exception specification?
|
| 9.2 |
613 |
WP |
Unevaluated uses of non-static class members
|
| 9.2 |
620 |
WP |
Declaration order in layout-compatible POD structs
|
| 9.2 |
645 |
review |
Are bit-field and non-bit-field members layout compatible?
|
| 9.3.2 |
452 |
WP |
Wording nit on description of this
|
| 9.4 |
67 |
TC1 |
Evaluation of left side of object-expression
|
| 9.4.1 |
315 |
NAD |
Is call of static member function through null pointer undefined?
|
| 9.4.2 |
48 |
TC1 |
Definitions of unused static members
|
| 9.4.2 |
406 |
WP |
Static data member in class with name for linkage purposes
|
| 9.4.2 |
454 |
WP |
When is a definition of a static data member required?
|
| 9.5 |
57 |
open |
Empty unions
|
| 9.5 |
359 |
NAD |
Type definition in anonymous union
|
| 9.5 |
512 |
review |
Union members with user-declared non-default constructors
|
| 9.6 |
58 |
WP |
Signedness of bit fields of enum type
|
| 9.6 |
436 |
WP |
Problem in example in 9.6 paragraph 4
|
| 9.6 |
675 |
open |
Signedness of bit-field with typedef or template parameter type
|
| 9.7 |
347 |
review |
Use of derived class name in defining base class nested class
|
| 9.8 |
198 |
WP |
Definition of "use" in local and nested classes
|
| 9.8 |
696 |
open |
Use of block-scope constants in local classes
|
| 10 |
484 |
WP |
Can a base-specifier name a cv-qualified class type?
|
| 10.2 |
39 |
WP |
Conflicting ambiguity rules
|
| 10.2 |
306 |
WP |
Ambiguity by class name injection
|
| 10.2 |
380 |
open |
Definition of "ambiguous base class" missing
|
| 10.3 |
608 |
review |
Determining the final overrider of a virtual function
|
| 10.4 |
230 |
open |
Calls to pure virtual functions
|
| 10.4 |
390 |
WP |
Pure virtual must be defined when implicitly called
|
| 11 |
8 |
WP |
Access to template arguments used in a function return type and in the nested name specifier
|
| 11 |
494 |
WP |
Problems with the resolution of issue 45
|
| 11 |
580 |
review |
Access in template-parameters of member and friend definitions
|
| 11 |
600 |
open |
Does access control apply to members or to names?
|
| 11.2 |
7 |
NAD |
Can a class with a private virtual base class be derived from?
|
| 11.2 |
9 |
WP |
Clarification of access to base class members
|
| 11.2 |
16 |
WP |
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 |
TC1 |
Injection-related errors in access example
|
| 11.2 |
207 |
WP |
using-declarations and protected access
|
| 11.2 |
360 |
open |
Using-declaration that reduces access
|
| 11.2 |
471 |
NAD |
Conflicting inherited access specifications
|
| 11.4 |
77 |
WP |
The definition of friend does not allow nested classes to be friends
|
| 11.4 |
209 |
NAD |
Must friend declaration names be
accessible? |
| 11.4 |
445 |
NAD |
Wording issue on friend declarations
|
| 11.4 |
500 |
WP |
Access in base-specifiers of friend and nested classes
|
| 11.4 |
501 |
NAD |
Visibility of friend declarations within the befriending class
|
| 11.4 |
585 |
review |
Friend template template parameters
|
| 11.5 |
19 |
NAD |
Clarify protected member access
|
| 11.5 |
161 |
TC1 |
Access to protected nested type
|
| 11.5 |
385 |
WP |
How does protected member check of 11.5 interact with using-declarations?
|
| 11.5 |
472 |
drafting |
Casting across protected inheritance
|
| 11.8 |
10 |
WP |
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 |
WP |
Access to nested classes
|
| 12.1 |
194 |
TC1 |
Identifying constructors
|
| 12.1 |
263 |
WP |
Can a constructor be declared a friend?
|
| 12.1 |
326 |
WP |
Wording for definition of trivial constructor
|
| 12.1 |
331 |
WP |
Allowed copy constructor signatures
|
| 12.1 |
581 |
open |
Can a templated constructor be explicitly instantiated or specialized?
|
| 12.2 |
86 |
WP |
Lifetime of temporaries in query expressions
|
| 12.2 |
117 |
NAD |
Timing of destruction of temporaries
|
| 12.2 |
124 |
WP |
Lifetime of temporaries in default initialization of class arrays
|
| 12.2 |
199 |
WP |
Order of destruction of temporaries
|
| 12.2 |
201 |
WP |
Order of destruction of temporaries in initializers
|
| 12.2 |
320 |
WP |
Question on copy constructor elision example
|
| 12.2 |
392 |
WP |
Use of full expression lvalue before temporary destruction
|
| 12.2 |
443 |
WP |
Wording nit in description of lifetime of temporaries
|
| 12.2 |
462 |
review |
Lifetime of temporaries bound to comma expressions
|
| 12.2 |
464 |
WP |
Wording nit on lifetime of temporaries to which references are bound
|
| 12.2 |
650 |
review |
Order of destruction for temporaries bound to the returned value of a function
|
| 12.3.1 |
152 |
TC1 |
explicit copy constructors
|
| 12.3.2 |
296 |
WP |
Can conversion functions be static?
|
| 12.3.2 |
395 |
open |
Conversion operator template syntax
|
| 12.4 |
193 |
TC1 |
Order of destruction of local automatics of destructor
|
| 12.4 |
244 |
WP |
Destructor lookup
|
| 12.4 |
252 |
WP |
Looking up deallocation functions in virtual destructors
|
| 12.4 |
272 |
WP |
Explicit destructor invocation and qualified-ids
|
| 12.4 |
344 |
open |
Naming destructors
|
| 12.4 |
399 |
drafting |
Destructor lookup redux
|
| 12.4 |
677 |
ready |
Deleted operator delete and virtual destructors
|
| 12.5 |
255 |
open |
Placement deallocation functions and lookup ambiguity
|
| 12.6 |
510 |
WP |
Default initialization of POD classes?
|
| 12.6 |
542 |
review |
Value initialization of arrays of POD-structs
|
| 12.6.1 |
363 |
NAD |
Initialization of class from self
|
| 12.6.2 |
235 |
TC1 |
Assignment vs initialization
|
| 12.6.2 |
257 |
review |
Abstract base constructors and virtual base initialization
|
| 12.6.2 |
607 |
open |
Lookup of mem-initializer-ids
|
| 12.6.2 |
655 |
review |
Initialization not specified for forwarding constructors
|
| 12.7 |
307 |
NAD |
Initialization of a virtual base class subobject
|
| 12.8 |
6 |
open |
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 |
TC1 |
Some clarifications needed for 12.8 para 15
|
| 12.8 |
26 |
NAD |
Copy constructors and default arguments
|
| 12.8 |
111 |
review |
Copy constructors and cv-qualifiers
|
| 12.8 |
185 |
TC1 |
"Named" temporaries and copy elision
|
| 12.8 |
356 |
NAD |
Wording of behavior of generated copy constructor for scalar members
|
| 12.8 |
444 |
NAD |
Overriding and the generated copy assignment operator
|
| 12.8 |
535 |
review |
Copy construction without a copy constructor
|
| 12.8 |
574 |
review |
Definition of “copy assignment operator”
|
| 12.8 |
653 |
review |
Copy assignment of unions
|
| 12.8 |
667 |
review |
Trivial special member functions that cannot be implicitly defined
|
| 12.8 |
680 |
drafting |
What is a move constructor?
|
| 12.8 |
683 |
open |
Requirements for trivial subobject special functions
|
| 13.3.1.1 |
162 |
WP |
(&C::f)() with nonstatic members
|
| 13.3.1.1.1 |
239 |
WP |
Footnote 116 and Koenig lookup
|
| 13.3.1.1.1 |
364 |
WP |
Calling overloaded function with static in set, with no object
|
| 13.3.1.1.2 |
280 |
WP |
Access and surrogate call functions
|
| 13.3.1.2 |
102 |
NAD |
Operator lookup rules do not work well with parts of the library
|
| 13.3.1.2 |
416 |
WP |
Class must be complete to allow operator lookup?
|
| 13.3.1.2 |
423 |
NAD |
Can a conversion be done on the left operand of a compound assignment?
|
| 13.3.1.2 |
545 |
open |
User-defined conversions and built-in operator overload resolution
|
| 13.3.1.3 |
604 |
drafting |
Argument list for overload resolution in copy-initialization
|
| 13.3.1.4 |
59 |
TC1 |
Clarification of overloading and UDC to reference type
|
| 13.3.2 |
641 |
review |
Overload resolution and conversion-to-same-type operators
|
| 13.3.3 |
51 |
TC1 |
Overloading and user-defined conversions
|
| 13.3.3 |
418 |
open |
Imperfect wording on error on multiple default arguments on a called function
|
| 13.3.3 |
455 |
open |
Partial ordering and non-deduced arguments
|
| 13.3.3 |
495 |
review |
Overload resolution with template and non-template conversion functions
|
| 13.3.3.1 |
84 |
TC1 |
Overloading and conversion loophole used by auto_ptr
|
| 13.3.3.1.2 |
243 |
NAD |
Weighting of conversion functions in direct-initialization
|
| 13.3.3.1.4 |
60 |
WP |
Reference binding and valid conversion sequences
|
| 13.3.3.2 |
83 |
TC1 |
Overloading and deprecated conversion of string literal
|
| 13.3.3.2 |
153 |
TC1 |
Misleading wording (rank of conversion)
|
| 13.4 |
61 |
NAD |
Address of static member function "&p->f"
|
| 13.4 |
115 |
WP |
Address of template-id
|
| 13.4 |
202 |
TC1 |
Use of overloaded function name
|
| 13.4 |
247 |
NAD |
Pointer-to-member casts and function overload resolution
|
| 13.4 |
250 |
TC1 |
Address of function template specialization with non-deduced template arguments
|
| 13.5.3 |
221 |
WP |
Must compound assignment operators be member functions?
|
| 13.5.6 |
420 |
WP |
postfixexpression->scalar_type_dtor() inconsistent
|
| 13.6 |
27 |
NAD |
Overload ambiguities for builtin ?: prototypes
|
| 13.6 |
260 |
drafting |
User-defined conversions and built-in operator=
|
| 13.6 |
425 |
WP |
Set of candidates for overloaded built-in operator with float operand
|
| 13.6 |
507 |
open |
Ambiguity assigning class object to built-in type
|
| 14 |
32 |
TC1 |
Clarification of explicit instantiation of non-exported templates
|
| 14 |
72 |
dup |
Linkage and storage class specifiers for templates
|
| 14 |
105 |
TC1 |
Meaning of "template function"
|
| 14 |
110 |
open |
Can template functions and classes be declared in the same scope?
|
| 14 |
134 |
TC1 |
Template classes and declarator-ids
|
| 14 |
204 |
WP |
Exported class templates
|
| 14 |
205 |
drafting |
Templates and static data members
|
| 14 |
323 |
WP |
Where must export appear?
|
| 14 |
335 |
WP |
Allowing export on template members of nontemplate classes
|
| 14 |
534 |
WP |
template-names and operator-function-ids
|
| 14.1 |
21 |
TC1 |
Can a default argument for a template parameter appear in a friend declaration?
|
| 14.1 |
49 |
TC1 |
Restriction on non-type, non-value template arguments
|
| 14.1 |
184 |
WP |
Default arguments in template template-parameters
|
| 14.1 |
187 |
TC1 |
Scope of template parameter names
|
| 14.1 |
215 |
WP |
Template parameters are not allowed |