Document number: N2871=09-0061

Alisdair Meredith

Summary of C++0x Standard : CD 1

This paper presents the set of changes applied to the 2003 C++ Standard (TC1) to produce CD1 for the pending C++0x standard. Major features and fixes are introduced via formal papers, collected by topic in the table below. Smaller fixes are handled via separate issues processing lists for Core and Library working groups, summarized in their respective tables below.

Base Document

The starting point for this work is the 2003 C++ Standard with TC1 applied, and the first library Technical Report. The ealiest draught in the current format is available online as N1577.

Key to the tables

Papers have been grouped in a self-selecting manner as either new components or updates. Proposals for new components have a series of papers describing thier evolution, and only the right-most paper is relevant (and the one applied to the working paper by committee vote.) The 'update' papers are grouped according to the feature they are updating, and mostly apply updates to the component papers after acceptance into the working paper.

WG21 Number(s) Title Authors
Memory model and concurrency
These papers deal with specifying the memory model for C++0x, and providing additional features, both in the language and the library, to support development of programs with some form of concurrency.
N2239 A finer-grained alternative to sequence points Clark Nelson
N2429 Sequencing and the concurrency memory model Clark Nelson, Hans Boehm
N2670 Minimal Support for Garbage Collection and Reachability-Based Leak Detection H.-J. Boehm, M. Spertus, C.Nelson
N2664 C++ Data-Dependency Ordering: Atomics and Memory Model P. McKenney, H.-J. Boehm, L. Crowl
N2782 C++ Data-Dependency Ordering: Function Annotation Paul E. McKenney, L. Crowl
N2427 Atomic operations with multi-threaded environments Hans Boehm, Lawrence Crowl
N2514 Implicit Conversion Operators for Atomics Lawrence Crowl
N2547 Allow atomics use in signal handlers Hans-J. Boehm
N2752 Improved support for bidirectional fences Peter Dimov
N2748 Strong Compare and Exchange Lawrence Crowl
N2659 Thread-Local Storage Lawrence Crowl
N2670 Dynamic initialization and concurrency Lawrence Crowl
N2669 Thread-Safety in the Standard Library B. Dawes, P. Dimov, H. Sutter
N2775 Small library thread-safety revisions Hans Boehm
N2668 Concurrency Modifications to basic_string A. Meredith, H. Boehm, L. Crowl, P. Dimov, D. Krügler
N2760 Input/Output Library Thread Safety Beman Dawes
N2497 A Multi-threading Library for Standard C++ H. Hinnant, B. Dawes, L. Crowl, J. Garland, A. Williams et al.
N2549 Excision of Clause 31 Thomas Plum
N2661 A Foundation to Sleep On Howard E. Hinnant, Walter E. Brown, Jeff Garland Marc Paterno
N2678 Error Handling Specification for Chapter 30 (Threads) J. Garland, N. Stoughton, B. Kosnik, B. Dawes
N2179 Language Support for Transporting Exceptions between Threads Peter Dimov
N2671 An Asynchronous Return Buffer D. Vollmann, H. Hinnant, A. Williams
N2709 Packaging Tasks for Asynchronous Execution Anthony Williams
N2440 Abandoning a Process Lawrence Crowl
Rvalue references
These papers deal with specifying a major new language feature that enables 'move semantics' for value types, and perfect forwarding of function arguments without an exponential combination of function overloads. The library is updated to take advantage of this feature.
N2118 A Proposal to Add an Rvalue Reference to the C++ Language H. Hinnant, P. Dimov, D. Abrahams, J. Adamczyk, A. Hommel
N1610 Clarification of Initialization of Class Objects by rvalues D. Abrahams, G. Powell
N2439 Extending Move Semantics To *this (Revision 2) Bronek Kozicki
N1856 Rvalue Reference Recommendations for Chapter 20 Howard E. Hinnant
N2244 Perfect forwarding for make_pair and make_tuple Thorsten Ottosen
N1857 Rvalue Reference Recommendations for Chapter 21 Howard E. Hinnant
N1858 Rvalue Reference Recommendations for Chapter 23 Howard E. Hinnant
N1859 Rvalue Reference Recommendations for Chapter 24 Howard E. Hinnant
N1860 Rvalue Reference Recommendations for Chapter 25 Howard E. Hinnant
N1861 Rvalue Reference Recommendations for Chapter 26 Howard E. Hinnant
N1862 Rvalue Reference Recommendations for Chapter 27 Howard E. Hinnant
These papers deal with specifying a major new language feature to constrain templates, and update the many parts of the library to take advantage of this feature.
N2773 Concepts (unified proposal) D. Gregor, B. Stroustrup, J. Siek, J. Widman
N2782 Named Requirements for C++0X Concepts W Brown, J Widman, C Jefferson, A Meredith
N2755 Concepts for the C++0x Standard Library: Introduction B. Dawes, D. Gregor, J. Willcock, A. Lumsdaine
N2774 Foundation Concepts for the C++0x Standard Library D. Gregor, A. Lumsdaine
N2777 Concepts for the C++0x Standard Library: Iterators D. Gregor, J. Willcock, A. Lumsdaine, J. Siek
N2779 Concepts for clause 18 (Part 2) Alisdair Meredith
N2620 Concepts for the C++0x Standard Library: Diagnostics library B. Dawes, D. Krügler, D. Gregor
N2768 Allocator Concepts Pablo Halpern
N2770 Concepts for the C++0x Standard Library: Utilities D. Gregor, J. Willcock, A. Lumsdaine
N2776 Concepts for the C++0x Standard Library: Containers D. Gregor, M. Marcus, P. Halpern
N2758 Iterator Concepts for the C++0x Standard Library D. Gregor, J. Willcock, A. Lumsdaine, J. Siek
N2759 Concepts for the C++0x Standard Library: Algorithms D. Gregor, M. Marcus, T. Witt, J. Willcock, A. Lumsdaine
N2786 Simplifying unique copy Douglas Gregor
N2736 Concepts for the C++0x Standard Library: Numerics 26.6 only D. Gregor, J. Willcock, A. Lumsdaine
These papers deal with improvements to the template facility.
N2258 Template aliases for C++ B. Stroustrup, G. Dos Reis, Mat Marcus, Walter E. Brown,Herb Sutter
N2657 Making Local Classes more Useful Anthony Williams; John Spicer
N1987 Extern template Matt Marcus, Garbriel Dos Reis, John Spicer
N2242 Variadic Templates D. Gregor, J. Järvi, G. Powell
N2555 Extending Variadic Template Template Parameters D. Gregor, E. Niebler
N2192 Variadic Templates for the C++0x Standard Library D. Gregor, J. Järvi
N1791 Extended friend Declarations William M. Miller
N1757 Right Angle Brackets Daveed Vandevoorde
N2634 Solving the SFINAE problem for expressions J Spicer, S Adamczyk
These papers deal with improvements to initialization syntax and semantics.
N2672 Initializer lists Bjarne Stroustrup, G. Dos Reis, J. S. Adamczyk
N2679 Initializer Lists for Standard Containers G. Dos Reis, B. Stroustrup
N1984 Deducing the type of variable from its initializer expression J. Jaarvi, B. Stroustrup, G. Dos Reis
N2546 The Syntax of auto Declarations Daveed Vandevoorde
N1986 Delegating Constructors H. Sutter, F. Glassborow
N2540 Inheriting Constructors M. Wong, A. Meredith, J. Maurer
N2756 Member Initializers M Spertus, Bill Seymour
New and Enhanced Data Types
These papers introduce new data types into the language, or enhance the properties of existing data types.
N1811 Adding the long long type to C++ J. Stephen Adamczyk
N1988 Adding extended integer types to C++ J. Stephen Adamczyk
N2114 long long Goes to the Library Robert Klarer
N2249 New Character Types in C++ Lawrence Crowl
N2170 Universal Character Names in Literals Lawrence Crowl
N2442 Raw String Literals and UTF8 literals Beman Dawes, Lawrence Crowl
N2238 Minimal Unicode support for the standard library Matthew Austern
N2342 PODs unstrung Beman Dawes
N2762 Not so Trivial Issues with Trivial L. Crowl, J. Maurer
N2347 Strongly Typed Enums H. Sutter, D. Miller, B. Stroustrup
N2764 Forward declaration of enumerations Alberto Ganesh Barbati
N2431 A name for the null pointer: nullptr H. Sutter, B. Stroustrup
N2656 Core issue 654: Convertibility of 0-literal H. Sutter, B. Stroustrup
N2544 Unrestricted Unions L. Goldthwaite, A. Talbot, L. Crowl, J. Maurer
Additional Language Facilities
These papers introduce more new language facilities, but do not have an connecting theme.
N1653 Synchronizing the C++ preprocessor with C99 Clark Nelson, Paul Mensonides
N1627 "Conditionally-Supported Behavior" William M. Miller
N1727 Changing Undefined Behavior into Diagnosable Errors William M. Miller
N1720 static_assert R. Klarer, J. Maddock, B. Dawes, H. Hinnant
N2235 Generalized Constant Expressions Gabriel Dos Reis
N2349 Constant Expressions in the Standard Library G. Dos Reis, B. Stroustrup
N2253 Extending sizeof Jens Maurer
N2340 Proposed addition of __func__ predefined identifier from C99 Alisdair Meredith, J Maurer
N2341 Adding Alignment Support to the C++ Programming Language Attila (Farkas) Fehér, C. Nelson
N2761 General Attributes for C++ Michael Wong, Jens Maurer
N2343 Decltype J. Järvi, B. Stroustrup, D. Gregor, J. Siek, G. Dos Reis
N2194 decltype for the C++0x Standard Library D. Gregor, J. Järvi
N2346 Defaulted and Deleted Functions Lawrence Crowl
N2292 Standard Library Applications for Deleted Functions Alisdair Meredith
N2437 Explicit Conversion Operators Lois Goldthwaite, Michael Wong, J Maurer, A Meredith
N2434 Standard Library Applications for Explicit Conversion Operators Alisdair Meredith
N2435 Standard Library Applications for Explicit Conversion Operators (to smart pointers) Alisdair Meredith
N2535 Namespace Association ("Strong Using") Benjamin Kosnik, Jason Merril
N2541 New function declaration syntax for deduced return types Jason Merrill (wording proposal by J. Järvi, B. Stroustrup, D. Gregor, J. Siek, G. Dos Reis)
N2550 (monomorphic) Lambda expressions and closures for C++ J Willcock, J Järvi, D Gregor, A Lumsdaine, J. Freeman, L. Crowl
N2658 Constness of lambda functions J Järvi, P Dimov, J Freeman
N2765 Extensible Literals I. McIntosh, M. Wong, R. Mak, R.Klarer Bjarne Stroustrup
N2778 Proposal for new for-loop Thorsten Ottosen, Doug Gregor
New Library Components
Several of the new library components were introduced via TR1 and so are listed against paper N1836 which is the final public draught of Library Technical Report 1. Papers are ordered and grouped by chapter where possible.
N2241 Diagnostics Enhancements for C++0x Beman Dawes
N2422 Diagnostics Enhancements; Resolution of Small Issues B. Dawes, B. Kosnik, C. Kohlhoff
N1836 tuple type for the standard library Jaakko Järvi
N2299 Concatenating tuples Joe Gottman
N1836 A Proposal to add Type Traits to the Standard Library John Maddock
N2255 Minor Modifications to the type traits Wording Howard E. Hinnant
N2240 Two missing traits: enable_if and conditional Benjamin Kosnik
N2244 Yet another type-trait: decay Thorsten Ottosen
N1836 Polymorphic Function Object Wrapper for the Standard Library Doug Gregor
N2308 Adding allocator support to std::function for C++0x Emil Dotchevski
N1836 General Purpose Smart Pointers P. Dimov, B. Dawes, G. Colvin
N2351 Improving shared_ptr for C++0x P. Dimov, B. Dawes
N2674 Atomic access to shared_ptr P. Dimov, B. Dawes
N2637 Revisiting std::shared_ptr comparison Hervé Brönnimann
N1836 A Fixed Size Array Wrapper for the Standard Library Alisdair Meredith
N2543 STL singly linked lists Matt Austern
N1836 A Proposal to Add Hashtables to the Standard Library Matt Austern
N2666 More STL algorithms Matt Austern
N2111 Random Number Generation in C++0x: A Comprehensive Proposal M. Paterno, M. Fischler, W. Brown, J. Kowalkowski
N2478 A Proposal to Add typedef default_random_engine to C++0X Walter E. Brown
N1836 Regular Expression for the Standard Library John Maddock
Enhancements to Existing Library
These propsals enhance or resolve issues with library components present in the original standard. Papers are ordered and grouped by chapter where possible.
N2667 Reserved namespaces for POSIX Bejnamin Kosnik
N2530 Making It Easier to Use std::type_info as an Index in an Associative Container James Kanze
N2559 Nesting Exception Objects Alisdair Meredith
N2005 A maximum significant decimal digits value for numeric_limits Paul A Bristow
N2348 A proposal to extend numeric_limits for consistent range query Fernando Cacciola, Marc Paterno
N1836 A uniform method for computing function object return types Douglas Gregor
N1836 reference wrapper Doug Gregor, Peter Dimov
N1836 Enhanced Binders P. Dimov, D. Gregor, J. Järvi, G. Powell
N1836 Enhanced Member Pointer Adaptor Peter Dimov
N2436 Small Allocator Fix-ups Pablo Halpern
N2554 A Scoped Allocator Model Pablo Halpern
N2525 Allocator-specific swap and move behaviour Pablo Halpern
N1981 Uniform Use of std::string Pete Becker
N2408 Simple Numeric Access Pete Becker
N2007 Proposed Library Additions for Code Conversions P.J. Plauger
N2401 Code Conversion Facets for the Standard C++ Library P.J. Plauger
N2321 Enhancing the time_get facet for POSIX® compatibility Martin Sebor
N1913 A Proposal to Improve const_iterator Use from C++0x Containers Walter E. Brown
N2345 Placement Insert for Containers Alan Talbot
N2680 Proposed Wording for Placement Insert Alan Talbot
N2350 Container insert/erase and iterator constness Matthew Austern, Alan Talbot
N2353 Specification for vector<bool> Alisdair Meredith
N1990 Function template std::minmax and / or algorithm std::minmax_element Hervé Brönnimann ; Howard E. Hinnant
N2551 A variadic std::min(T, ...) for the C++ Standard Library Sylvain Pion
N2772 Variadic functions: Variadic templates or initializer lists? Loïc Joly
N2246 2 crazy ideas for the standard library Thorsten Ottosen
N1836 Proposed C99 Library Additions to C++ P.J. Plauger
N2259 Specify header dependency for <iostream> Howard E. Hinnant
N2071 Iostream manipulators for convenient extraction and insertion of struct tm objects Martin Sebor
N2072 Iostream manipulators for convenient extraction and insertion of monetary values Martin Sebor
N1991 Proposed Text for defaultfloat Paul A Bristow ; Howard E. Hinnant
N2769 Detailed Reporting for Input/Output Library Errors Beman Dawes
Accelerated Issue Resolution
These papers were used as a means to resolve issues already tracked through the issues lists when their status was not 'Ready' coming into a meeting.
N2183 LWG Issues From Batavia Howard E. Hinnant
N2757 Expedited core issues handling Jens Maurer
N2771 LWG Issues (San Francisco) Howard E. Hinnant
N2783 Collected issues with Atomics Lawrence Crowl

Core Issues

The following table list all issues resolved via the Core Working Group issues list and incorporated into CD1.

Issue Section Title
4 7.5 Does extern "C" affect the linkage of function names with internal linkage?
5 8.5 CV-qualifiers and type conversions
8 11 Access to template arguments used in a function return type and in the nested name specifier
9 11.2 Clarification of access to base class members
10 11.8 Can a nested class access its own class name as a qualified name if it is a private member of the enclosing class?
11 7.3.3 How do the keywords typename/template interact with using-declarations?
16 11.2 Access to members of indirect private base classes
28 3.6.3 'exit', 'signal' and static object destruction
29 7.5 Linkage of locally declared functions
39 10.2 Conflicting ambiguity rules
44 14.7.3 Member specializations
45 11.8 Access to nested classes
54 5.2.9 Static_cast from private base to derived class
58 9.6 Signedness of bit fields of enum type
60 Reference binding and valid conversion sequences
62 14.3.1 Unnamed members of classes used as type parameters
63 14.7.1 Class instantiation from pointer conversion to void*, null and self
70 Is an array bound a nondeduced context?
77 11.4 The definition of friend does not allow nested classes to be friends
78 8.5 Section 8.5 paragraph 9 should state it only applies to non-static objects
86 12.2 Lifetime of temporaries in query expressions
87 15.4 Exception specifications on function parameters
106 unknown Creating references to references during template deduction/instantiation
112 8.3.4 Array types and cv-qualifiers
113 5.2.2 Visibility of called function
115 13.4 Address of template-id
118 5.2.2 Calls via pointers to virtual member functions
119 3.8 Object lifetime and aggregate initialization
122 5.1 template-ids as unqualified-ids
124 12.2 Lifetime of temporaries in default initialization of class arrays
125 5.1 Ambiguity in friend declaration syntax
136 8.3.6 Default arguments and friend declarations
139 3.4.1 Error in friend lookup example
140 8.3.5 Agreement of parameter declarations
141 3.4.5 Non-member function templates in member access expressions
143 3.4.2 Friends and Koenig lookup
158 3.10 Aliasing and qualification conversions
160 8.2 Missing std:: qualification
162 (&C::f)() with nonstatic members
172 7.2 Unsigned int as underlying type of enum
175 9 Class name injection and base name access
177 8.5 Lvalues vs rvalues in copy-initialization
180 14.6 typename and elaborated types
184 14.1 Default arguments in template template-parameters
195 5.2.10 Converting between function and object pointers
197 Issues with two-stage lookup of dependent names
198 9.8 Definition of "use" in local and nested classes
199 12.2 Order of destruction of temporaries
201 12.2 Order of destruction of temporaries in initializers
204 14 Exported class templates
207 11.2 using-declarations and protected access
208 15.1 Rethrowing exceptions in nested handlers
214 Partial ordering of function templates is underspecified
215 14.1 Template parameters are not allowed in nested-name-specifiers
216 3.5 Linkage of nameless class-scope enumeration types
218 3.4.2 Specification of Koenig lookup
220 All deallocation functions should be required not to throw
221 13.5.3 Must compound assignment operators be member functions?
222 5 Sequence points and lvalue-returning operators
224 Definition of dependent names
226 14.1 Default template arguments for function templates
228 14.2 Use of template keyword with non-member templates
237 14.7.2 Explicit instantiation and base class members
239 Footnote 116 and Koenig lookup
244 12.4 Destructor lookup
245 3.4.4 Name lookup in elaborated-type-specifiers
246 14.3 Jumps in function-try-block handlers
252 12.4 Looking up deallocation functions in virtual destructors
254 3.4.4 Definitional problems with elaborated-type-specifiers
256 5.3.4 Overflow in size calculations
258 7.3.3 using-declarations and cv-qualifiers
259 14.7 Restrictions on explicit specialization and instantiation
261 3.2 When is a deallocation function "used?"
262 8.3.5 Default arguments and ellipsis
263 12.1 Can a constructor be declared a friend?
270 3.6.2 Order of initialization of static data members of class templates
272 12.4 Explicit destructor invocation and qualified-ids
273 9 POD classes and operator&()
274 3.8 Cv-qualification and char-alias access to out-of-lifetime objects
275 14.7.3 Explicit instantiation/specialization and using-directives
276 6.6 Order of destruction of parameters and temporaries
277 8.5 Zero-initialization of pointers
280 Access and surrogate call functions
281 7.1.2 inline specifier in friend declarations
283 Template type-parameters are not syntactically type-names
284 9 qualified-ids in class declarations
286 14.5.5 Incorrect example in partial specialization
288 5.3.5 Misuse of "static type" in describing pointers
289 3.2 Incomplete list of contexts requiring a complete type
291 8.5.3 Overload resolution needed when binding reference to class rvalue
295 8.3.5 cv-qualifiers on function types
296 12.3.2 Can conversion functions be static?
298 T::x when T is cv-qualified
299 5.3.4 Conversion on array bound expression in new
300 References to functions in template argument deduction
301 14.2 Syntax for template-name
302 8.5 Value-initialization and generation of default constructor
305 3.4.5 Name lookup in destructor call
306 10.2 Ambiguity by class name injection
309 3 Linkage of entities whose names are not simply identifiers, in introduction
317 7.1.2 Can a function be declared inline after it has been called?
318 struct A::A should not name the constructor of A
319 3.5 Use of names without linkage in declaring entities with linkage
320 12.2 Question on copy constructor elision example
322 Deduction of reference conversions
323 14 Where must export appear?
324 5.3.1 Can "&" be applied to assignment to bit-field?
326 12.1 Wording for definition of trivial constructor
327 9 Use of "structure" without definition
328 9.2 Missing requirement that class member types be complete
329 14.5.4 Evaluation of friends of templates
331 12.1 Allowed copy constructor signatures
335 14 Allowing export on template members of nontemplate classes
336 14.7.3 Explicit specialization examples are still incorrect
337 14.8.2 Attempt to create array of abtract type should cause deduction to fail
339 5.19 Overload resolution in operand of sizeof in constant expression
345 14.6 Misleading comment on example in templates chapter
348 delete and user-written deallocation functions
349 Template argument deduction for conversion functions and qualification conversions
351 5 Sequence point error: unspecified or undefined?
352 Nondeduced contexts
353 5.3.5 Is deallocation routine called if destructor throws exception in delete?
354 14.3.2 Null as nontype template argument
357 1.3 Definition of signature should include name
362 2.1 Order of initialization in instantiation units
364 Calling overloaded function with static in set, with no object
366 5.19 String literal allowed in integral constant expression?
367 5.19 throw operator allowed in constant expression?
368 14.8.2 Uses of non-type parameters that should cause deduction to fail
370 16.2 Can #include <...> form be used other than for standard C++ headers?
372 14.3 Is access granted by base class specifiers available in following base class specifiers?
377 7.2 Enum whose enumerators will not fit in any integral type
379 9 Change "class declaration" to "class definition"
381 3.4.5 Incorrect example of base class member lookup
382 14.6 Allow typename outside of templates
383 9 Is a class with a declared but not defined destructor a POD?
385 11.5 How does protected member check of 11.5 interact with using-declarations?
387 14.6.5 Errors in example in 14.6.5
389 3.5 Unnamed types in entities with linkage
390 10.4 Pure virtual must be defined when implicitly called
391 8.5.3 Require direct binding of short-lived references to rvalues
392 12.2 Use of full expression lvalue before temporary destruction
394 16 identifier-list is never defined
396 7.1.2 Misleading note regarding use of auto for disambiguation
397 7.1.2 Same address for string literals from default arguments in inline functions?
398 14.8.2 Ambiguous wording on naming a type in deduction
400 Using-declarations and the "struct hack"
401 14.1 When is access for template parameter default arguments checked?
403 3.4.2 Reference to a type as a template-id
404 3.8 Unclear reference to construction with non-trivial constructor
406 9.4.2 Static data member in class with name for linkage purposes
409 14.6 Obsolete paragraph missed by changes for issue 224
410 14.5.4 Paragraph missed in changes for issue 166
413 9 Definition of "empty class"
414 3.4.5 Multiple types found on destructor lookup
415 14.8.3 Template deduction does not cause instantiation
416 Class must be complete to allow operator lookup?
417 9.1 Using derived-class qualified name in out-of-class nested class definition
420 13.5.6 postfixexpression->scalar_type_dtor() inconsistent
421 5.2.5 Is rvalue.field an rvalue?
424 7.1.3 Wording problem with issue 56 resolution on redeclaring typedefs in class scope
425 13.6 Set of candidates for overloaded built-in operator with float operand
427 5.2.9 static_cast ambiguity: conversion versus cast to derived
428 15.1 Mention of expression with reference type
429 5.3.4 Matching deallocation function chosen based on syntax or signature?
430 8.5.1 Ordering of expression evaluation in initializer list
432 3.3.6 Is injected class name visible in base class specifier list?
433 3.3.1 Do elaborated type specifiers in templates inject into enclosing namespace scope?
436 9.6 Problem in example in 9.6 paragraph 4
437 9.2 Is type of class allowed in member function exception specification?
439 5.2.9 Guarantees on casting pointer back to cv-qualified version of original type
441 3.6.2 Ordering of static reference initialization
442 5.3.5 Incorrect use of null pointer constant in description of delete operator
443 12.2 Wording nit in description of lifetime of temporaries
446 5.16 Does an lvalue-to-rvalue conversion on the "?" operator produce a temporary?
447 Is offsetof type-dependent?
450 8.5.3 Binding a reference to const to a cv-qualified array rvalue
451 5 Expressions with invalid results and ill-formedness
452 9.3.2 Wording nit on description of this
454 9.4.2 When is a definition of a static data member required?
457 5.19 Wording nit on use of const variables in constant expressions
460 7.3.3 Can a using-declaration name a namespace?
463 5.2.10 reinterpret_cast<T*>(0)
464 12.2 Wording nit on lifetime of temporaries to which references are bound
466 5.2.4 cv-qualifiers on pseudo-destructor type
468 14.2 Allow ::template outside of templates
470 14.7.2 Instantiation of members of an explicitly-instantiated class template
474 3.5 Block-scope extern declarations in namespace members
477 7.1.2 Can virtual appear in a friend declaration?
479 15.1 Copy elision in exception handling
480 4.11 Is a base of a virtual base also virtual?
484 10 Can a base-specifier name a cv-qualified class type?
485 3 What is a “name”?
486 14.8.2 Invalid return types and template argument deduction
488 14.8.2 Local types, overload resolution, and template argument deduction
491 8.5.1 Initializers for empty-class aggregrate members
492 5.2.8 typeid constness inconsistent with example
494 11 Problems with the resolution of issue 45
497 5.5 Missing required initialization in example
500 11.4 Access in base-specifiers of friend and nested classes
505 2.13.2 Conditionally-supported behavior for unknown character escapes
506 5.2.2 Conditionally-supported behavior for non-POD objects passed to ellipsis
509 8.5 Dead code in the specification of default initialization
510 12.6 Default initialization of POD classes?
513 1.8 Non-class “most-derived” objects
514 3.4.1 Is the initializer for a namespace member in the scope of the namespace?
515 14.6.2 Non-dependent references to base class members
516 Use of signed in bit-field declarations
517 14.5.5 Partial specialization following explicit instantiation
518 7.2 Trailing comma following enumerator-list
519 4.10 Null pointer preservation in void* conversions
520 5.4 Old-style casts between incomplete class types
521 Requirements for exceptions thrown by allocation functions
522 Array-to-pointer decay in template argument deduction
524 14.6.2 Can function-notation calls to operator functions be dependent?
525 14.7.1 Missing * in example
526 Confusing aspects in the specification of non-deduced contexts
530 5.19 Nontype template arguments in constant expressions
534 14 template-names and operator-function-ids
537 1.3 Definition of “signature”
538 9 Definition and usage of structure, POD-struct, POD-union, and POD class
540 7.3.1 Propagation of cv-qualifiers in reference-to-reference collapse
543 8.5 Value initialization and default constructors
551 14.7.2 When is inline permitted in an explicit instantiation?
557 3.4.2 Does argument-dependent lookup cause template instantiation?
558 2.2 Excluded characters in universal character names
559 14.6 Editing error in issue 382 resolution
568 9 Definition of POD is too strict
582 14.5.2 Template conversion functions
592 15.2 Exceptions during construction of local static objects
594 3.8 Coordinating issues 119 and 404 with delegating constructors
603 14.4 Type equivalence and unsigned overflow
606 Template argument deduction for rvalue references
613 9.2 Unevaluated uses of non-static class members
614 5.6 Results of integer / and %
620 9.2 Declaration order in layout-compatible POD structs
624 5.3.4 Overflow in calculating size of allocation
629 auto parsing ambiguity
632 8.5.1 Brace-enclosed initializer for scalar member of aggregate
634 5.2.2 Conditionally-supported behavior for non-POD objects passed to ellipsis redux
637 1.9 Sequencing rules and example disagree
639 1.9 What makes side effects “different” from one another?
644 3.9 Should a trivial class type be a literal type?
647 7.1.5 Non-constexpr instances of constexpr constructor templates
648 7.1.5 Constant expressions in constexpr initializers
649 3.11 Optionally ill-formed extended alignment requests
651 Problems in decltype specification and examples
654 4.10 Conversions to and from nullptr_t
659 5.3.6 Alignment of function types
660 7.2 Unnamed scoped enumerations
661 5.9 Semantics of arithmetic comparisons
663 E Valid Cyrillic identifier characters
666 14.6 Dependent qualified-ids without the typename keyword
671 5.2.9 Explicit conversion from a scoped enumeration type to integral type
677 12.4 Deleted operator delete and virtual destructors
679 14.4 Equivalence of template-ids and operator function templates
681 8.3.5 Restrictions on declarators with late-specified return types
683 12.8 Requirements for trivial subobject special functions
684 5.19 Constant expressions involving the address of an automatic variable
686 8.1 Type declarations/definitions in type-specifier-seqs and type-ids
688 3.6.2 Constexpr constructors and static initialization

Library Issues

The following table list all issues resolved via the Library Working Group issues list and incorporated into CD1.

Issue Section Title
182 17 [library] Ambiguous references to size_t
230 17 [library] Assignable specified without also specifying CopyConstructible
336 17 [library] Clause 17 lack of references to deprecated headers
262 [bitmask.types] Bitmask operator ~ specified incorrectly
229 [contents] Unqualified references of other library entities
310 [headers] Is errno a macro?
456 [headers] Traditional C header files are overspecified
465 [headers] Contents of <ciso646>
120 [reserved.names] Can an implementor add specializations?
226 [reserved.names] User supplied specializations or overloads of namespace std function templates
232 [reserved.names] "depends" poorly defined in
422 [reserved.names] explicit specializations of member functions of class templates
294 [macro.names] User defined macros and standard headers
404 [replacement.functions] May a replacement allocation function be declared inline?
611 [res.on.functions] Standard library templates and incomplete types
225 [global.functions] std:: algorithms use of other unqualified algorithms
306 18.1 [support.types] offsetof macro and non-POD types
449 18.1 [support.types] Library Issue 306 Goes Too Far
201 18.2.1 [limits] Numeric limits terminology wrong
559 18.2.1 [limits] numeric_limits<const T>
497 [numeric.limits.members] meaning of numeric_limits::traps for floating point types
612 [numeric.limits.members] numeric_limits::is_modulo insufficiently defined
184 [numeric.special] numeric_limits<bool> wording problems
613 [numeric.special] max_digits10 missing from numeric_limits
416 18.2.2 [c.limits] definitions of XXX_MIN and XXX_MAX macros in climits
593 18.3 [cstdint] __STDC_CONSTANT_MACROS
206 [new.delete.single] operator new(size_t, nothrow) may become unlinked to ordinary operator new if ordinary version replaced
319 [new.delete.single] Storage allocation wording confuses "Required behavior", "Requires"
298 [new.delete.array] ::operator delete[] requirement incorrect/insufficient
266 [bad.exception] bad_exception::~bad_exception() missing Effects clause
744 18.7.5 [propagation] What is the lifetime of an exception pointed to by an exception_ptr?
746 18.7.5 [propagation] current_exception may fail with bad_alloc
820 18.7.5 [propagation] current_exception()'s interaction with throwing copy ctors
829 18.7.5 [propagation] current_exception wording unclear about exception type
619 18.9 [support.runtime] Longjmp wording problem
254 19.1 [std.exceptions] Exception types in clause 19 are constructed from std::string
288 19.3 [errno] <cerrno> requirements missing macro EILSEQ
804 19.4 [syserr] Some problems with classes error_code/error_condition
805 19.4 [syserr] posix_error::posix_errno concerns
698 [syserr.syserr.overview] system_error needs const char* constructors
312 20 [utilities] Table 27 is missing headers
672 20.1.1 [utility.arg.requirements] Swappable requirements need updating
258 20.1.2 [allocator.requirements] Missing allocator requirement
274 20.1.2 [allocator.requirements] a missing/impossible allocator requirement
401 20.1.2 [allocator.requirements] incorrect type casts in table 32 in lib.allocator.requirements
402 20.1.2 [allocator.requirements] wrong new expression in [some_]allocator::construct
700 20.2.2 [forward] N1856 defines struct identity
808 20.2.2 [forward] [forward] incorrect redundant specification
823 20.2.2 [forward] identity<void> seems broken
265 20.2.3 [pairs] std::pair::pair() effects overly restrictive
706 20.2.3 [pairs] make_pair() should behave as make_tuple() wrt. reference_wrapper()
522 20.4 [tuple] Tuple doesn't define swap
807 [tuple.cnstr] tuple construction should not fail unless its element's construction fails
775 [tuple.helper] Tuple indexing should be unsigned?
749 [meta.unary.prop] Currently has_nothrow_copy_constructor<T>::value is true if T has 'a' nothrow copy constructor.
705 20.5.7 [meta.trans.other] type-trait decay incompletely specified
856 20.5.7 [meta.trans.other] Removal of aligned_union
185 20.6 [function.objects] Questionable use of term "inline"
660 20.6 [function.objects] Missing Bitwise Operations
521 20.6.5 [refwrap] Garbled requirements for argument_type in reference_wrapper
689 [refwrap.const] reference_wrapper constructor overly constrained
284 20.6.7 [comparisons] unportable example in 20.3.7, p6
297 20.6.8 [logical.operations] const_mem_fun_t<>::argument_type should be const T*
520 [func.bind] Result_of and pointers to data members
527 [func.bind.bind] tr1::bind has lost its Throws clause
770 20.6.15 [func.wrap] std::function should use rvalue swap
769 [func.wrap.func] std::function should use nullptr_t instead of "unspecified-null-pointer-type"
610 [func.wrap.func.con] Suggested non-normative note for C++0x
848 20.6.16 [unord.hash] missing std::hash specializations for std::bitset/std::vector<bool>
843 [func.referenceclosure.cons] Reference Closure
234 [allocator.members] Typos in allocator definition
400 [allocator.members] redundant type cast in lib.allocator.members
578 [allocator.members] purpose of hint to allocator::allocate()
634 [allocator.members] allocator.address() doesn't work for types overloading operator&
425 20.7.8 [temporary.buffer] return value of std::get_temporary_buffer
673 20.7.11 [unique.ptr] unique_ptr update
762 20.7.11 [unique.ptr] std::unique_ptr requires complete type?
806 [unique.ptr.single.modifiers] unique_ptr::reset effects incorrect, too permissive
740 [unique.ptr.compiletime] Please remove *_ptr<T[N]>
541 [util.smartptr.shared] shared_ptr template assignment and void
674 [util.smartptr.shared] shared_ptr interface changes for consistency with N1856
710 [util.smartptr.shared] Missing postconditions
813 [util.smartptr.shared] "empty" undefined for shared_ptr
687 [util.smartptr.shared.const] shared_ptr conversion constructor not constrained
575 [util.smartptr.shared.dest] the specification of ~shared_ptr is MT-unfriendly, makes implementation assumptions
540 [util.smartptr.shared.obs] shared_ptr<void>::operator*()
542 [util.smartptr.shared.obs] shared_ptr observers
743 [util.smartptr.shared.spec] rvalue swap for shared_ptr
533 [util.smartptr.getdeleter] typo in
545 [util.smartptr.getdeleter] When is a deleter deleted?
858 [] Wording for Minimal Support for Garbage Collection
882 [time.duration.nonmember] duration non-member arithmetic requirements
335 21.1.1 [char.traits.require] minor issue with char_traits, table 37
352 21.1.2 [char.traits.typedefs] missing fpos requirements
709 21.1.3 [char.traits.specializations] char_traits::not_eof has wrong signature
467 [char.traits.specializations.char] char_traits::lt(), compare(), and memcmp()
180 21.3 [basic.string] Container member iterator arguments constness has unintended consequences
263 21.3 [basic.string] Severe restriction on basic_string reference counting
530 21.3 [basic.string] Must elements of a string be contiguous?
534 21.3 [basic.string] Missing basic_string members
301 21.3.1 [string.require] basic_string template ctor effects clause omits allocator argument
259 21.3.4 [string.capacity] basic_string::operator[] and const correctness
428 [string::erase] string::erase(iterator) validity
403 [string::swap] basic_string::swap should not throw exceptions
535 [string::swap] std::string::swap specification poorly worded
91 [] Description of operator>> and getline() for string<> might cause endless loop
435 [] bug in DR 25
586 [] string inserter not a formatted function
824 [] rvalue ref issue with basic_string inserter
771 21.4 [string.conversions] Impossible throws clause in [string.conversions]
772 21.4 [string.conversions] Impossible return clause in [string.conversions]
345 21.5 [c.strings] type tm in <cwchar>
317 22 [localization] Instantiation vs. specialization of facets
495 22 [localization] Clause 22 template parameter requirements
268 22.1.1 [locale] Typo in locale synopsis
360 22.1.1 [locale] locale mandates inefficient implementation
327 [locale.category] Typo in time_get facet in table 52
340 [locale.category] interpretation of has_facet<Facet>(loc)
347 [locale.category] locale::category and bitmask requirements
436 [locale.facet] are cv-qualified facet types valid facets?
391 [conversions] non-member functions specified as const
228 22.2 [locale.categories] Incorrect specification of "..._byname" facets
338 22.2 [locale.categories] is whitespace allowed between `-' and a digit?
339 22.2.1 [category.ctype] definition of bitmask type restricted to clause 27
379 [locale.ctype.virtuals] nonsensical ctype::do_widen() requirement
616 [locale.ctype.byname] missing 'typename' in ctype_byname
695 [facet.ctype.special] ctype<char>::classic_table() not accessible
153 [facet.ctype.char.members] Typo in narrow() semantics
76 [locale.codecvt] Can a codecvt facet always convert one internal character at a time?
664 [locale.codecvt.virtuals] do_unshift for codecvt<char, char, mbstate_t>
665 [locale.codecvt.virtuals] do_unshift return value
305 [locale.codecvt.byname] Default behavior of codecvt<wchar_t, char, mbstate_t>::length()
380 [locale.codecvt.byname] typos in codecvt tables 53 and 54
381 [locale.codecvt.byname] detection of invalid mbstate_t in codecvt
275 [facet.num.get.members] Wrong type in num_get::get() overloads
23 [facet.num.get.virtuals] Num_get overflow result
221 [facet.num.get.virtuals] num_get<>::do_get stage 2 processing broken
321 [facet.num.get.virtuals] Typo in num_get
358 [facet.num.get.virtuals] interpreting thousands_sep after a decimal_point
359 [facet.num.put.members] num_put<>::do_put (..., bool) undocumented
231 [facet.num.put.virtuals] Precision in iostream?
282 [facet.num.put.virtuals] What types does numpunct grouping refer to?
318 [locale.numpunct.byname] Misleading comment in definition of numpunct_byname
248 22.2.5 [category.time] time_get fails to set eofbit
461 [locale.time.get.virtuals] time_get hard or impossible to implement
328 [] Bad sprintf format modifier in money_put<>::do_put()
325 [locale.moneypunct.virtuals] Misleading text in moneypunct<>::do_grouping
666 [locale.moneypunct.virtuals] moneypunct::do_curr_symbol()
179 23.1 [container.requirements] Comparison of const_iterators to iterators doesn't work
276 23.1 [container.requirements] Assignable requirement for container value type overly strict
322 23.1 [container.requirements] iterator and const_iterator should have the same value type
371 23.1 [container.requirements] Stability of multiset and multimap member functions
589 23.1 [container.requirements] Requirements on iterators of member template functions of containers
675 23.1 [container.requirements] Move assignment of containers
759 23.1 [container.requirements] A reference is not an object
766 23.1 [container.requirements] Inconsistent exception guarantees between ordered and unordered associative containers
842 23.1 [container.requirements] ConstructibleAsElement and bit containers
355 23.1.3 [sequence.reqmts] Operational semantics for a.back()
438 23.1.3 [sequence.reqmts] Ambiguity in the "do the right thing" clause
103 23.1.4 [associative.reqmts] set::iterator is required to be modifiable, but this allows modification of keys
130 23.1.4 [associative.reqmts] Return type of container::erase(iterator) differs for associative containers
233 23.1.4 [associative.reqmts] Insertion hints in associative containers
264 23.1.4 [associative.reqmts] Associative container insert(i, j) complexity requirements are not feasible.
316 23.1.4 [associative.reqmts] Vague text in Table 69
354 23.1.4 [associative.reqmts] Associative container lower/upper bound requirements
518 23.1.5 [unord.req] Are insert and erase stable for unordered_multiset and unordered_multimap?
679 23.2 [sequences] resize parameter by value
519 23.2.1 [array] Data() undocumented
720 23.2.1 [array] Omissions in constexpr usages
776 23.2.1 [array] Undescribed assign function of std::array
237 [deque.cons] Undefined expression in complexity specification
850 [deque.capacity] Should shrink_to_fit apply to std::deque?
638 [deque.modifiers] deque end invalidation during erase
307 23.2.4 [list] Lack of reference typedefs in container adaptors
320 [list.cons] list::assign overspecified
410 [list.cons] Missing semantics for stack and queue comparison operators
250 [list.ops] splicing invalidates iterators
278 [list.ops] What does iterator validity mean?
300 [list.ops] list::merge() specification incomplete
315 [list.ops] Bad "range" in list::unique complexity
464 23.2.6 [vector] Suggestion for new member functions in standard containers
469 23.2.6 [vector] vector<bool> ill-formed relational operators
496 23.2.6 [vector] Illegal use of "T" in vector<bool>
329 [vector.capacity] vector capacity, reserve and reallocation
341 [vector.capacity] Vector reallocation and swap
755 [vector.capacity] std::vector and std:string lack explicit shrink-to-fit operations
247 [vector.modifiers] vector, deque::insert complexity
406 [vector.modifiers] vector::insert(s) exception safety
414 [vector.modifiers] Which iterators are invalidated by v.erase()?
334 [map.access] map::operator[] specification forces inefficient implementation
703 [map.access] map::at() need a complexity specification
214 23.3.3 [set] set::find() missing const overload
693 23.3.5 [template.bitset] std::bitset::all() missing
694 23.3.5 [template.bitset] std::bitset and long long
396 [bitset.cons] what are characters zero and one
457 [bitset.cons] bitset constructor: incorrect number of initialized bits
778 [bitset.cons] std::bitset does not have any constructor taking a string literal
186 [bitset.members] bitset::set() second parameter should be bool
434 [bitset.members] bitset::to_string() hard to use
303 [bitset.operators] Bitset input operator underspecified
691 23.4 [unord] const_local_iterator cbegin, cend missing from TR1
852 23.4 [unord] unordered containers begin(n) mistakenly const
761 [] unordered_map needs an at() member function
198 24.1 [iterator.requirements] Validity of pointers and references unspecified after iterator destruction
346 24.1 [iterator.requirements] Some iterator member functions should be const
407 24.1 [iterator.requirements] Can singular iterators be destroyed?
98 24.1.1 [input.iterators] Input iterator requirements are badly written
324 24.1.2 [output.iterators] Do output iterators have value types?
200 24.1.3 [forward.iterators] Forward iterator requirements don't allow constant iterators
478 24.1.3 [forward.iterators] Should forward iterator requirements table have a line for r->m?
383 24.1.4 [bidirectional.iterators] Bidirectional iterator assertion typo
448 24.1.5 [random.access.iterators] Random Access Iterators over abstract classes
445 24.3.1 [iterator.traits] iterator_traits::reference unspecified for some iterator categories
280 24.4.1 [reverse.iterators] Comparison of reverse_iterator to const reverse_iterator
235 [reverse.iterator] No specification of default ctor for reverse_iterator
386 [reverse.iter.op-=] Reverse iterator's operator[] has impossible return type
685 [reverse.iter.opdiff] reverse_iterator/move_iterator difference has invalid signatures
561 [inserter] inserter overly generic
680 [move.iterator] move_iterator operator-> return
260 [istream.iterator.ops] Inconsistent return type of istream_iterator::operator++(int)
261 [istream.iterator.ops] Missing description of istream_iterator::operator!=
349 24.5.2 [ostream.iterator] Minor typographical error in ostream_iterator
92 25 [algorithms] Incomplete Algorithm Requirements
475 25.1.4 [alg.foreach] May the function object passed to for_each modify the elements of the iterated sequence?
576 25.1.7 [alg.find.first.of] find_first_of is overconstrained
240 25.1.8 [alg.adjacent.find] Complexity of adjacent_find() is meaningless
426 25.1.12 [] search_n(), fill_n(), and generate_n() with negative n
714 25.1.12 [] search_n complexity is too lax
187 25.2.3 [alg.swap] iter_swap underspecified
809 25.2.3 [alg.swap] std::swap should be overloaded for array types
242 25.2.4 [alg.transform] Side effects of function objects
283 25.2.5 [alg.replace] std::replace() requirement incorrect/insufficient
337 25.2.5 [alg.replace] replace_copy_if's template parameter should be InputIterator
779 25.2.8 [alg.remove] Resolution of #283 incomplete
202 25.2.9 [alg.unique] unique() effects unclear when predicate not an equivalence relation
239 25.2.9 [alg.unique] Complexity of unique() and/or unique_copy incorrect
241 25.2.9 [alg.unique] Does unique_copy() require CopyConstructible and Assignable?
538 25.2.9 [alg.unique] 241 again: Does unique_copy() require CopyConstructible and Assignable?
488 25.2.11 [alg.rotate] rotate throws away useful information
552 25.2.12 [alg.random.shuffle] random_shuffle and its generator
713 [sort] sort() complexity is too lax
270 25.3.3 [] Binary search requirements overly strict
577 [upper.bound] upper_bound(first, last, ...) cannot return last
384 [equal.range] equal_range has unimplementable runtime complexity
787 [] complexity of binary_search
291 25.3.5 [alg.set.operations] Underspecification of set algorithms
411 25.3.5 [alg.set.operations] Wrong names of set member functions
281 25.3.7 [alg.min.max] std::min() and max() requirements overly restrictive
715 25.3.7 [alg.min.max] minmax_element complexity is too lax
286 25.4 [alg.c.library] <cstdlib> requirements missing size_t typedef
405 25.4 [alg.c.library] qsort and POD
387 26.3 [complex.numbers] std::complex over-encapsulated
629 26.3.6 [complex.ops] complex<T> insertion and locale dependence
595 26.3.7 [complex.value.ops] TR1/C++0x: fabs(complex<T>) redundant / wrongly specified
781 26.3.7 [complex.value.ops] std::complex should add missing C99 functions
844 26.3.9 [cmplx.over] complex pow return type is ambiguous
551 26.3.11 [cmplxh] <ccomplex>
507 26.4 [rand] Missing requirement for variate_generator::operator()
699 26.4 [rand] N2111 changes min/max
505 26.4.1 [rand.req] Result_type in random distribution requirements
654 [rand.req.eng] Missing IO roundtrip for random number engines
678 [rand.req.eng] Changes for [rand.req.eng]
728 [rand.eng.mers] Problem in [rand.eng.mers]/6
609 [rand.adapt.ibits] missing static const
789 [rand.adapt.xor] xor_combine_engine(result_type) should be explicit
508 26.4.5 [rand.predef] Bad parameters for ranlux64_base_01
607 [rand.util.seedseq] Concern about short seed vectors
608 [rand.util.seedseq] Unclear seed_seq construction details
677 [rand.util.seedseq] Weaknesses in seed_seq::randomize [rand.util.seedseq]
712 [rand.util.seedseq] seed_seq::size no longer useful
782 [rand.util.seedseq] Extended seed_seq constructor is useless
655 [rand.util.canonical] Signature of generate_canonical not useful
734 [rand.dist.norm.chisq] Unnecessary restriction in [rand.dist.norm.chisq]
792 [rand.dist.samp.pconst] piecewise_constant_distribution is undefined for a range with just one endpoint
621 26.5 [numarray] non-const copy assignment operators of helper arrays
253 [valarray.cons] valarray helper functions are almost entirely useless
620 [valarray.cons] valid uses of empty valarrays
624 [valarray.assign] valarray assignment and arrays of unequal length
389 [valarray.access] Const overload of valarray::operator[] returns by value
618 [valarray.members] valarray::cshift() effects on empty array
543 26.5.4 [class.slice] valarray slice default constructor
123 [slice.arr.fill] Should valarray helper arrays fill functions be const?
295 26.7 [c.math] Is abs defined in <cmath>?
395 26.7 [c.math] inconsistencies in the definitions of rand() and random_shuffle()
550 26.7 [c.math] What should the return type of pow(float,int) be?
722 26.7 [c.math] Missing [c.math] functions nanf and nanl
44 27 [input.output] Iostreams use operator== on int_type values
273 27 [input.output] Missing ios_base qualification on members of a dependent class
308 27 [input.output] Table 82 mentions unrelated headers
365 27 [input.output] Lack of const-qualification in clause 27
623 27.1.1 [iostream.limits.imbue] pubimbue forbidden to call imbue
369 27.3 [iostream.objects] io stream objects and static ctors
455 27.3 [iostream.objects] cerr::tie() and wcerr::tie() are overspecified
574 27.3 [iostream.objects] DR 369 Contradicts Text
331 [ios::failure] bad declaration of destructor for ios_base::failure
363 [ios::failure] Missing exception specification in
49 [ios.members.static] Underspecification of ios_base::sync_with_stdio
441 27.4.3 [fpos] Is fpos::state const?
256 [basic.ios.members] typo in, p17: copy_event does not exist
292 [basic.ios.members] effects of a.copyfmt (a)
272 [iostate.flags] Missing parentheses around subexpression
412 [iostate.flags] Typo in
468 [iostate.flags] unexpected consequences of ios_base::operator void*()
364 [streambuf.virt.buffer] Inconsistent wording in
567 27.6 [iostream.format] streambuf inserter and extractor should be unformatted
373 [istream.formatted.reqmts] Are basic_istream and basic_ostream to use (exceptions()&badbit) != 0 ?
118 [istream.formatted.arithmetic] basic_istream uses nonexistent num_get member functions
661 [istream.formatted.arithmetic] New changes make special extractions useless
413 [istream::extractors] Proposed resolution to LDR#64 still wrong
136 [istream.unformatted] seekp, seekg setting wrong streams?
243 [istream.unformatted] get and getline when sentry reports failure
370 [istream.unformatted] Minor error in basic_istream::get
531 [istream.unformatted] array forms of unformatted input functions
537 [istream.unformatted] Typos in the signatures in and
566 [istream.unformatted] array forms of unformatted input function undefined for zero-element arrays
415 [istream.manip] behavior of std::ws
271 [iostreamclass] basic_iostream missing typedefs
165 [ostream] xsputn(), pubsync() never called by basic_ostream members?
311 [ostream] Incorrect wording in basic_ostream class synopsis
442 [ostream::sentry] sentry::operator bool() inconsistent signature
117 [ostream.inserters.arithmetic] basic_ostream uses nonexistent num_put member functions
640 [ostream.inserters.arithmetic] does not handle (unsigned) long long
167 [ostream.inserters.character] Improper use of traits_type::length()
474 [ostream.inserters.character] confusing Footnote 297
581 [ostream.unformatted] flush() not unformatted function
333 [ostream.manip] does endl imply synchronization with the device?
183 27.6.3 [std.manip] I/O stream manipulators don't work for wide character streams
692 27.6.4 [ext.manip] get_money and put_money should be formatted I/O functions
252 27.7 [string.streams] missing casts/C-style casts used in iostreams
562 27.7 [string.streams] stringbuf ctor inefficient
251 27.7.1 [stringbuf] basic_stringbuf missing allocator_type
238 [stringbuf.cons] Contradictory results of stringbuf initialization.
375 [stringbuf.virtuals] basic_ios should be ios_base in
376 [stringbuf.virtuals] basic_streambuf semantics
432 [stringbuf.virtuals] stringbuf::overflow() makes only one write position available
453 [stringbuf.virtuals] basic_stringbuf::seekoff need not always fail for an empty stream
563 [stringbuf.virtuals] stringbuf seeking from end
420 27.8.1 [fstreams] is std::FILE a complete type?
444 27.8.1 [fstreams] Bad use of casts in fstream
460 27.8.1 [fstreams] Default modes missing from basic_fstream member specifications
643 [filebuf] Impossible "as if" clauses
443 [filebuf.members] filebuf::close() inconsistent use of EOF
596 [filebuf.members] Table 112 omits "a+" and "a+b" modes
171 [filebuf.virtuals] Strange seekpos() semantics due to joint position
285 [ifstream.cons] minor editorial errors in fstream ctors
409 [ifstream.members] Closing an fstream should clear error state
622 [fstream.members] behavior of filebuf dtor and close on error
524 28 [re] regex named character classes and case-insensitivity don't mix
628 28.8 [re.regex] Inconsistent definition of basic_regex constructor
682 28.8.2 [re.regex.construct] basic_regex ctor takes InputIterator or ForwardIterator?
681 28.9.2 [re.submatch.op] Operator functions impossible to compare are defined in [re.submatch.op]
646 28.10.4 [re.results.form] const incorrect match_result members
652 28.12.1 [re.regiter] regex_iterator and const correctness
650 28.12.2 [re.tokiter] regex_token_iterator and const correctness
651 [re.tokiter.cnstr] Missing preconditions for regex_token_iterator c'tors
818 29.1 [atomics.order] wording for memory ordering
845 29.3 [atomics.types] atomics cannot support aggregate initialization
846 29.3 [atomics.types] No definition for constructor
768 29.3.3 [atomics.types.generic] Typos in [atomics]?
777 29.4 [atomics.types.operations] Atomics Library Issue
783 [] thread::id reuse
109 D.8 [depr.lib.binders] Missing binders for non-const sequence elements
362 D.8 [depr.lib.binders] bind1st/bind2nd type safety
798 D.8 [depr.lib.binders] Refactoring of binders lead to interface breakage