Document number: N2871=09-0061

Alisdair Meredith
2009-03-23

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
Concepts
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
Templates
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
Initialization
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 13.3.3.1.4 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 14.8.2.5 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 13.3.1.1 (&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 14.6.4.2 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 14.5.6.2 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 3.7.3.2 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 14.6.2.1 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 13.3.1.1.1 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 13.3.1.1.2 Access and surrogate call functions
281 7.1.2 inline specifier in friend declarations
283 7.1.6.2 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 3.4.3.1 T::x when T is cv-qualified
299 5.3.4 Conversion on array bound expression in new
300 14.8.2.5 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 3.4.3.1 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 14.8.2.3 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 3.7.3.2 delete and user-written deallocation functions
349 14.8.2.3 Template argument deduction for conversion functions and qualification conversions
351 5 Sequence point error: unspecified or undefined?
352 14.8.2.1 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 13.3.1.1.1 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 3.4.3.2 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 13.3.1.2 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 14.6.2.3 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 7.1.6.2 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 3.7.3.1 Requirements for exceptions thrown by allocation functions
522 14.8.2.1 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 14.8.2.5 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 14.8.2.1 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 7.1.6.4 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 7.1.6.2 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 17.3.2.1.2 [bitmask.types] Bitmask operator ~ specified incorrectly
229 17.4.1.1 [contents] Unqualified references of other library entities
310 17.4.1.2 [headers] Is errno a macro?
456 17.4.1.2 [headers] Traditional C header files are overspecified
465 17.4.1.2 [headers] Contents of <ciso646>
120 17.4.3.2 [reserved.names] Can an implementor add specializations?
226 17.4.3.2 [reserved.names] User supplied specializations or overloads of namespace std function templates
232 17.4.3.2 [reserved.names] "depends" poorly defined in 17.4.3.1
422 17.4.3.2 [reserved.names] explicit specializations of member functions of class templates
294 17.4.3.2.1 [macro.names] User defined macros and standard headers
404 17.4.3.5 [replacement.functions] May a replacement allocation function be declared inline?
611 17.4.3.7 [res.on.functions] Standard library templates and incomplete types
225 17.4.4.3 [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 18.2.1.2 [numeric.limits.members] meaning of numeric_limits::traps for floating point types
612 18.2.1.2 [numeric.limits.members] numeric_limits::is_modulo insufficiently defined
184 18.2.1.5 [numeric.special] numeric_limits<bool> wording problems
613 18.2.1.5 [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 18.5.1.1 [new.delete.single] operator new(size_t, nothrow) may become unlinked to ordinary operator new if ordinary version replaced
319 18.5.1.1 [new.delete.single] Storage allocation wording confuses "Required behavior", "Requires"
298 18.5.1.2 [new.delete.array] ::operator delete[] requirement incorrect/insufficient
266 18.7.2.1 [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 19.4.5.1 [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 20.4.1.2 [tuple.cnstr] tuple construction should not fail unless its element's construction fails
775 20.4.1.4 [tuple.helper] Tuple indexing should be unsigned?
749 20.5.4.3 [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 20.6.5.1 [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 20.6.11.1 [func.bind] Result_of and pointers to data members
527 20.6.11.1.3 [func.bind.bind] tr1::bind has lost its Throws clause
770 20.6.15 [func.wrap] std::function should use rvalue swap
769 20.6.15.2 [func.wrap.func] std::function should use nullptr_t instead of "unspecified-null-pointer-type"
610 20.6.15.2.1 [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 20.6.17.1 [func.referenceclosure.cons] Reference Closure
234 20.7.5.1 [allocator.members] Typos in allocator definition
400 20.7.5.1 [allocator.members] redundant type cast in lib.allocator.members
578 20.7.5.1 [allocator.members] purpose of hint to allocator::allocate()
634 20.7.5.1 [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 20.7.11.2.5 [unique.ptr.single.modifiers] unique_ptr::reset effects incorrect, too permissive
740 20.7.11.4 [unique.ptr.compiletime] Please remove *_ptr<T[N]>
541 20.7.12.2 [util.smartptr.shared] shared_ptr template assignment and void
674 20.7.12.2 [util.smartptr.shared] shared_ptr interface changes for consistency with N1856
710 20.7.12.2 [util.smartptr.shared] Missing postconditions
813 20.7.12.2 [util.smartptr.shared] "empty" undefined for shared_ptr
687 20.7.12.2.1 [util.smartptr.shared.const] shared_ptr conversion constructor not constrained
575 20.7.12.2.2 [util.smartptr.shared.dest] the specification of ~shared_ptr is MT-unfriendly, makes implementation assumptions
540 20.7.12.2.5 [util.smartptr.shared.obs] shared_ptr<void>::operator*()
542 20.7.12.2.5 [util.smartptr.shared.obs] shared_ptr observers
743 20.7.12.2.9 [util.smartptr.shared.spec] rvalue swap for shared_ptr
533 20.7.12.2.11 [util.smartptr.getdeleter] typo in 2.2.3.10/1
545 20.7.12.2.11 [util.smartptr.getdeleter] When is a deleter deleted?
858 20.7.12.6 [util.dynamic.safety] Wording for Minimal Support for Garbage Collection
882 20.8.3.5 [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 21.1.3.1 [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 21.3.6.5 [string::erase] string::erase(iterator) validity
403 21.3.6.8 [string::swap] basic_string::swap should not throw exceptions
535 21.3.6.8 [string::swap] std::string::swap specification poorly worded
91 21.3.8.9 [string.io] Description of operator>> and getline() for string<> might cause endless loop
435 21.3.8.9 [string.io] bug in DR 25
586 21.3.8.9 [string.io] string inserter not a formatted function
824 21.3.8.9 [string.io] 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 22.1.1.1.1 [locale.category] Typo in time_get facet in table 52
340 22.1.1.1.1 [locale.category] interpretation of has_facet<Facet>(loc)
347 22.1.1.1.1 [locale.category] locale::category and bitmask requirements
436 22.1.1.1.2 [locale.facet] are cv-qualified facet types valid facets?
391 22.1.3.2 [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 22.2.1.1.2 [locale.ctype.virtuals] nonsensical ctype::do_widen() requirement
616 22.2.1.2 [locale.ctype.byname] missing 'typename' in ctype_byname
695 22.2.1.3 [facet.ctype.special] ctype<char>::classic_table() not accessible
153 22.2.1.3.2 [facet.ctype.char.members] Typo in narrow() semantics
76 22.2.1.4 [locale.codecvt] Can a codecvt facet always convert one internal character at a time?
664 22.2.1.4.2 [locale.codecvt.virtuals] do_unshift for codecvt<char, char, mbstate_t>
665 22.2.1.4.2 [locale.codecvt.virtuals] do_unshift return value
305 22.2.1.5 [locale.codecvt.byname] Default behavior of codecvt<wchar_t, char, mbstate_t>::length()
380 22.2.1.5 [locale.codecvt.byname] typos in codecvt tables 53 and 54
381 22.2.1.5 [locale.codecvt.byname] detection of invalid mbstate_t in codecvt
275 22.2.2.1.1 [facet.num.get.members] Wrong type in num_get::get() overloads
23 22.2.2.1.2 [facet.num.get.virtuals] Num_get overflow result
221 22.2.2.1.2 [facet.num.get.virtuals] num_get<>::do_get stage 2 processing broken
321 22.2.2.1.2 [facet.num.get.virtuals] Typo in num_get
358 22.2.2.1.2 [facet.num.get.virtuals] interpreting thousands_sep after a decimal_point
359 22.2.2.2.1 [facet.num.put.members] num_put<>::do_put (..., bool) undocumented
231 22.2.2.2.2 [facet.num.put.virtuals] Precision in iostream?
282 22.2.2.2.2 [facet.num.put.virtuals] What types does numpunct grouping refer to?
318 22.2.3.2 [locale.numpunct.byname] Misleading comment in definition of numpunct_byname
248 22.2.5 [category.time] time_get fails to set eofbit
461 22.2.5.1.2 [locale.time.get.virtuals] time_get hard or impossible to implement
328 22.2.6.2.2 [locale.money.put.virtuals] Bad sprintf format modifier in money_put<>::do_put()
325 22.2.6.3.2 [locale.moneypunct.virtuals] Misleading text in moneypunct<>::do_grouping
666 22.2.6.3.2 [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 23.2.2.1 [deque.cons] Undefined expression in complexity specification
850 23.2.2.2 [deque.capacity] Should shrink_to_fit apply to std::deque?
638 23.2.2.3 [deque.modifiers] deque end invalidation during erase
307 23.2.4 [list] Lack of reference typedefs in container adaptors
320 23.2.4.1 [list.cons] list::assign overspecified
410 23.2.4.1 [list.cons] Missing semantics for stack and queue comparison operators
250 23.2.4.4 [list.ops] splicing invalidates iterators
278 23.2.4.4 [list.ops] What does iterator validity mean?
300 23.2.4.4 [list.ops] list::merge() specification incomplete
315 23.2.4.4 [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 23.2.6.2 [vector.capacity] vector capacity, reserve and reallocation
341 23.2.6.2 [vector.capacity] Vector reallocation and swap
755 23.2.6.2 [vector.capacity] std::vector and std:string lack explicit shrink-to-fit operations
247 23.2.6.4 [vector.modifiers] vector, deque::insert complexity
406 23.2.6.4 [vector.modifiers] vector::insert(s) exception safety
414 23.2.6.4 [vector.modifiers] Which iterators are invalidated by v.erase()?
334 23.3.1.2 [map.access] map::operator[] specification forces inefficient implementation
703 23.3.1.2 [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 23.3.5.1 [bitset.cons] what are characters zero and one
457 23.3.5.1 [bitset.cons] bitset constructor: incorrect number of initialized bits
778 23.3.5.1 [bitset.cons] std::bitset does not have any constructor taking a string literal
186 23.3.5.2 [bitset.members] bitset::set() second parameter should be bool
434 23.3.5.2 [bitset.members] bitset::to_string() hard to use
303 23.3.5.3 [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 23.4.1.2 [unord.map.elem] 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 24.4.1.1 [reverse.iterator] No specification of default ctor for reverse_iterator
386 24.4.1.3.11 [reverse.iter.op-=] Reverse iterator's operator[] has impossible return type
685 24.4.1.3.19 [reverse.iter.opdiff] reverse_iterator/move_iterator difference has invalid signatures
561 24.4.2.6.5 [inserter] inserter overly generic
680 24.4.3.1 [move.iterator] move_iterator operator-> return
260 24.5.1.2 [istream.iterator.ops] Inconsistent return type of istream_iterator::operator++(int)
261 24.5.1.2 [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 [alg.search] search_n(), fill_n(), and generate_n() with negative n
714 25.1.12 [alg.search] 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 25.3.1.1 [sort] sort() complexity is too lax
270 25.3.3 [alg.binary.search] Binary search requirements overly strict
577 25.3.3.2 [upper.bound] upper_bound(first, last, ...) cannot return last
384 25.3.3.3 [equal.range] equal_range has unimplementable runtime complexity
787 25.3.3.4 [binary.search] 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 26.4.1.3 [rand.req.eng] Missing IO roundtrip for random number engines
678 26.4.1.3 [rand.req.eng] Changes for [rand.req.eng]
728 26.4.3.2 [rand.eng.mers] Problem in [rand.eng.mers]/6
609 26.4.4.2 [rand.adapt.ibits] missing static const
789 26.4.4.4 [rand.adapt.xor] xor_combine_engine(result_type) should be explicit
508 26.4.5 [rand.predef] Bad parameters for ranlux64_base_01
607 26.4.7.1 [rand.util.seedseq] Concern about short seed vectors
608 26.4.7.1 [rand.util.seedseq] Unclear seed_seq construction details
677 26.4.7.1 [rand.util.seedseq] Weaknesses in seed_seq::randomize [rand.util.seedseq]
712 26.4.7.1 [rand.util.seedseq] seed_seq::size no longer useful
782 26.4.7.1 [rand.util.seedseq] Extended seed_seq constructor is useless
655 26.4.7.2 [rand.util.canonical] Signature of generate_canonical not useful
734 26.4.8.4.3 [rand.dist.norm.chisq] Unnecessary restriction in [rand.dist.norm.chisq]
792 26.4.8.5.2 [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 26.5.2.1 [valarray.cons] valarray helper functions are almost entirely useless
620 26.5.2.1 [valarray.cons] valid uses of empty valarrays
624 26.5.2.2 [valarray.assign] valarray assignment and arrays of unequal length
389 26.5.2.3 [valarray.access] Const overload of valarray::operator[] returns by value
618 26.5.2.7 [valarray.members] valarray::cshift() effects on empty array
543 26.5.4 [class.slice] valarray slice default constructor
123 26.5.5.3 [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 27.4.2.1.1 [ios::failure] bad declaration of destructor for ios_base::failure
363 27.4.2.1.1 [ios::failure] Missing exception specification in 27.4.2.1.1
49 27.4.2.4 [ios.members.static] Underspecification of ios_base::sync_with_stdio
441 27.4.3 [fpos] Is fpos::state const?
256 27.4.4.2 [basic.ios.members] typo in 27.4.4.2, p17: copy_event does not exist
292 27.4.4.2 [basic.ios.members] effects of a.copyfmt (a)
272 27.4.4.3 [iostate.flags] Missing parentheses around subexpression
412 27.4.4.3 [iostate.flags] Typo in 27.4.4.3
468 27.4.4.3 [iostate.flags] unexpected consequences of ios_base::operator void*()
364 27.5.2.4.2 [streambuf.virt.buffer] Inconsistent wording in 27.5.2.4.2
567 27.6 [iostream.format] streambuf inserter and extractor should be unformatted
373 27.6.1.2.1 [istream.formatted.reqmts] Are basic_istream and basic_ostream to use (exceptions()&badbit) != 0 ?
118 27.6.1.2.2 [istream.formatted.arithmetic] basic_istream uses nonexistent num_get member functions
661 27.6.1.2.2 [istream.formatted.arithmetic] New 27.6.1.2.2 changes make special extractions useless
413 27.6.1.2.3 [istream::extractors] Proposed resolution to LDR#64 still wrong
136 27.6.1.3 [istream.unformatted] seekp, seekg setting wrong streams?
243 27.6.1.3 [istream.unformatted] get and getline when sentry reports failure
370 27.6.1.3 [istream.unformatted] Minor error in basic_istream::get
531 27.6.1.3 [istream.unformatted] array forms of unformatted input functions
537 27.6.1.3 [istream.unformatted] Typos in the signatures in 27.6.1.3/42-43 and 27.6.2.4
566 27.6.1.3 [istream.unformatted] array forms of unformatted input function undefined for zero-element arrays
415 27.6.1.4 [istream.manip] behavior of std::ws
271 27.6.1.5 [iostreamclass] basic_iostream missing typedefs
165 27.6.2.1 [ostream] xsputn(), pubsync() never called by basic_ostream members?
311 27.6.2.1 [ostream] Incorrect wording in basic_ostream class synopsis
442 27.6.2.4 [ostream::sentry] sentry::operator bool() inconsistent signature
117 27.6.2.6.2 [ostream.inserters.arithmetic] basic_ostream uses nonexistent num_put member functions
640 27.6.2.6.2 [ostream.inserters.arithmetic] 27.6.2.5.2 does not handle (unsigned) long long
167 27.6.2.6.4 [ostream.inserters.character] Improper use of traits_type::length()
474 27.6.2.6.4 [ostream.inserters.character] confusing Footnote 297
581 27.6.2.7 [ostream.unformatted] flush() not unformatted function
333 27.6.2.8 [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 27.7.1.1 [stringbuf.cons] Contradictory results of stringbuf initialization.
375 27.7.1.4 [stringbuf.virtuals] basic_ios should be ios_base in 27.7.1.3
376 27.7.1.4 [stringbuf.virtuals] basic_streambuf semantics
432 27.7.1.4 [stringbuf.virtuals] stringbuf::overflow() makes only one write position available
453 27.7.1.4 [stringbuf.virtuals] basic_stringbuf::seekoff need not always fail for an empty stream
563 27.7.1.4 [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 27.8.1.1 [filebuf] Impossible "as if" clauses
443 27.8.1.4 [filebuf.members] filebuf::close() inconsistent use of EOF
596 27.8.1.4 [filebuf.members] 27.8.1.3 Table 112 omits "a+" and "a+b" modes
171 27.8.1.5 [filebuf.virtuals] Strange seekpos() semantics due to joint position
285 27.8.1.7 [ifstream.cons] minor editorial errors in fstream ctors
409 27.8.1.9 [ifstream.members] Closing an fstream should clear error state
622 27.8.1.17 [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 28.12.2.1 [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 30.2.1.1 [thread.thread.id] 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