This paper presents a quick summary of all papers submitted to WG21 for consideration by the Library Working Group, with an indication of their progress towards inclusion in the next C++ Standard or future TRs. It is based on the pre-Toronto 2007 mailing plus documents made available during the Toronto meeting for voting into the working paper.
There is a minimal crossover with the State of Evolution paper where concurrency related topics tend to cross the Core/Library divide, and till now have been largely handled by the Evolution Working Group.
Note that while the deadline for new proposals for C++0x is long past, work continues on TR2 and beyond, so new submissions remain welcome.
Proposals in a green font have advanced a category since the last meeting, those in red have moved back, while those in yellow are new or have been updated since the last meeting. Those with a green background have been advertised as key to the next standard in the registration document.
WG21 Number(s) | Title | Authors |
New Library Components Integrated into working paper | ||
These propsals are already incorporated into the latest working paper, N2369, or the project editor has been directed to include them in the next draught. The majority were introduced by adopting the text of Library Technical Report 1 directly. For reference the original paper voted into the Library TR is listed in those cases, although actual wording comes from the TR which incorporates defect reports. | ||
N2096 N2179 | Language Support for Transporting Exceptions between Threads | Peter Dimov |
N2066 N2174 N2241 | Diagnostics Enhancements for C++0x | Beman Dawes |
N1403 | tuple type for the standard library | Jaakko Järvi |
N1424 N1836 | A Proposal to add Type Traits to the Standard Library | John Maddock |
N1402 N1836 | Polymorphic Function Object Wrapper for the Standard Library | Doug Gregor |
N1450 N1836 | General Purpose Smart Pointers | P. Dimov, B. Dawes, G. Colvin |
N1548 N1836 | A Fixed Size Array Wrapper for the Standard Library | Alisdair Meredith |
N1456 N1836 | A Proposal to Add Hashtables to the Standard Library | Matt Austern |
N1588 N1914 N1932 N1933 N2032 N2033 N2079 N2111 | Random Number Generation in C++0x: A Comprehensive Proposal | M. Paterno, M. Fischler, W. Brown, J. Kowalkowski |
N1429 N1836 | Regular Expression for the Standard Library | John Maddock |
New Language Support in the Working Paper | ||
These propsals are already incorporated into the latest working paper, N2369, or the project editor has been directed to include them in the next draught. They all take advantage of some new language feature voted into the Core Language to improve the library experience - such as with stronger type safety, improved runtime performance or a richer set of semantics. | ||
N1856 | Rvalue Reference Recommendations for Chapter 20 | Howard E. Hinnant |
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 |
N2035 N2207 N2238 | Minimal Unicode support for the standard library | Matthew Austern |
N2095 N2114 | long long Goes to the Library | Robert Klarer |
N2151 N2192 | Variadic Templates for the C++0x Standard Library | D. Gregor, J. Järvi |
N2194 | decltype for the C++0x Standard Library | D. Gregor, J. Järvi |
N2219 N2288 N2349 | Constant Expressions in the Standard Library | G. Dos Reis, B. Stroustrup |
N2292 | Standard Library Applications for Deleted Functions | Alisdair Meredith |
Enhancements Integrated into working paper | ||
These propsals are already incorporated into the latest working paper, N2369, or the project editor has been directed to include them in the next draught. Some of these papers are the result of defect reports, and might separately be tracked through the LWG Defect Report List. All are enhancements to existing library components, including those adopted as New Components above. | ||
N1822 N2005 | A maximum significant decimal digits value for Numeric limits | Paul A Bristow |
N1880 N2348 | A proposal to extend numeric_limits for consistent range query | Fernando Cacciola, Marc Paterno |
N2244 | Perfect forwarding for make_pair and make_tuple | Thorsten Ottosen |
N2299 | Concatenating tuples | Joe Gottman |
N2028 N2157 N2255 | Minor Modifications to the type traits Wording | Howard E. Hinnant |
N2069 N2244 | Yet another type-trait: decay | Thorsten Ottosen |
N2240 | Two missing traits: enable_if and conditional | Benjamin Kosnik |
N1454 | A uniform method for computing function object return types | Douglas Gregor |
N1453 N1836 | reference wrapper | Doug Gregor, Peter Dimov |
N1455 N1836 | Enhanced Binders | P. Dimov, D. Gregor, J. Järvi, G. Powell |
N1432 N1836 | Enhanced Member Pointer Adaptor | Peter Dimov |
N2308 | Adding allocator support to std::function for C++0x | Emil Dotchevski |
N2232 N2297 N2351 | Improving shared_ptr for C++0x | P. Dimov, B. Dawes |
N1802 N1981 | Uniform Use of std::string | Pete Becker |
N1683 N1957 N2007 ; N1750 | Proposed Library Additions for Code Conversions | P.J. Plauger ; Beman Dawes |
N2070 N2211 N2321 | Enhancing the time_get facet for POSIX® compatibility | Martin Sebor |
N1674 N1865 N1913 | A Proposal to Improve const_iterator Use from C++0x Containers | Walter E. Brown |
N2217 N2268 N2345 | Placement Insert for Containers | Alan Talbot |
N2256 N2350 | Container insert/erase and iterator constness | Matthew Austern, Alan Talbot |
N2204 N2353 | Specification for vector<bool> | Alisdair Meredith |
N1840 ; N1990 | Function template std::minmax and / or algorithm std::minmax_element | Hervé Brönnimann ; Howard E. Hinnant |
N1870 N2099 N2246 |
|
Thorsten Ottosen |
N1568 N1836 | Proposed C99 Library Additions to C++ | P.J. Plauger |
N2259 | Specify header dependency for <iostream> | Howard E. Hinnant |
N2072 | Iostream manipulators for convenient extraction and insertion of monetary values | Martin Sebor |
N1842 N1991 | Proposed Text for defaultfloat | Paul A Bristow ; Howard E. Hinnant |
Voting in Kona | ||
These papers have been thoroughly reviewed are strong candidates to be brought forward for voting in Kona. They are listed here if they have blocked waiting on a Core wording update, or simply passed review too late to present to full committee in Toronto. | ||
N2293 | Standard Library Applications for Explicit Conversion Operators | Alisdair Meredith |
New Library Components Planned for C++0x | ||
While these papers have not been adopted yet, they propose significant new library components intended for the next C++ Standard. | ||
N2047 N2145 N2324 | C++ Atomic Types and Operations | H.-J. Boehm, L. Crowl |
N2320 | Multi-threading Library for Standard C++ | H. Hinnant, B. Dawes, L. Crowl, J. Garland, A. Williams |
Updates Planned for C++0x | ||
While these papers have not been adopted yet, they propose updates and enhancement for existing library components for the next C++ Standard, or revisions of already adopted new features. | ||
N2298 | Thread-Safety in the Standard Library | B. Dawes, P. Dimov, H. Sutter |
N2296 | Diagnostics Enhancements; Resolution of Small Issues | B. Dawes, B. Kosnik |
N2303 | Revised system_error | Benjamin Kosnik |
N2309 | Error-handling and Exception-related library changes for C++0x | Benjamin Kosnik |
N1850 | Towards a Better Allocator Model | Pablo Halpern |
N2297 | Improving shared_ptr for C++0x parts VI and VII | P. Dimov, B. Dawes |
N2233 | basic_string operator << | Lawrence Crowl |
N1803 N1982 | Simple Numeric Access | Pete Becker |
N2220 | Initializer Lists for Standard Containers | G. Dos Reis, B. Stroustrup |
N1599 | Issue 431: Swapping containers with unequal allocators | Howard E. Hinnant |
N1388 | Enhancing numerical support | Gabriel Dos Reis |
N1589 | complex and issue 387 | Howard E. Hinnant |
N2014 | C99 and POSIX(2001) Compatibility | Nick Maclaren |
N2186 | Some Small Additions to iostream | James Kanze |
N2327 | Inconsistencies in IOStreams Numeric Extraction | Cosmin Truta |
N2043 | Simplifying And Extending Mutex and Scoped Lock Types For C++ Multi-Threading Library | Ion Gaztañaga |
N2328 | Proposal for Date-Time Types in C++0x To Support Threading APIs | Jeff Garland |
N2275 | Non-Memory Actions (Library) | Nick Maclaren |
Risky Papers for Kona | ||
These papers are technically quite demanding, or built on top of demanding papers, and the LWG is concerned whether they can be adequately reviewed them in a single meeting. Formally adopting them during the next meeting would be a risk, but additional review time depends on the project timetable. Also note that at least one more proposal on thread pools and futures is expected ahead of the Kona meeting. | ||
N2037 | Concepts for the C++0x Standard Library: Introduction | D. Gregor, J. Willcock, A. Lumsdaine |
N2038 N2082 N2322 | Concepts for the C++0x Standard Library: Utilities | D. Gregor, J. Willcock, A. Lumsdaine |
N1672 ; N2039 N2083 N2323 | Concepts for the C++0x Standard Library: Iterators | Pete Becker ; D. Gregor, J. Willcock, A. Lumsdaine, J. Siek |
N2040 N2084 | Concepts for the C++0x Standard Library: Algorithms | D. Gregor, J. Willcock, A. Lumsdaine |
N2041 | Concepts for the C++0x Standard Library: Numerics | D. Gregor, J. Willcock, A. Lumsdaine |
N2085 | Concepts for the C++0x Standard Library: Containers | Douglas Gregor |
N2245 | Range Utilities for C++0x | Thorsten Ottosen |
N1847 ; N2160 ; N2204 | Library Issue 96: Fixing vector<bool> | Herb Sutter ; Beman Dawes ; Alisdair Meredith |
N2185 | Proposed Text for Parallel Task Execution | Peter Dimov |
N2276 | Thread Pools and Futures | Anthony Williams |
Reference Papers | ||
These papers are intended to guide or inform authors in developing libraries targetting either the Standard or a Technical Report. While they contain no formal proposals, they still offer value for the process as a whole. | ||
N1940 | Why POSIX Threads Are Unsuitable for C++ | Nick Maclaren |
N2139 | Thoughts on a Thread Library for C++ | Anthony Williams |
N2121 | Proposed Improvements to the Presentation of Requirements for Functions | Alan Talbot |
N1344 | Namespaces and Library Versioning | Herb Sutter |
N1356 | Predictable data layout for certain non-POD types | R.W. Grosse-Kunstleve & D. Abrahams |
N2004 | Impact of Language Changes on LWG Schedule | Beman Dawes |
N2051 | Evolution of the C++ Standard Library | Alisdair Meredith |
N2089 | Asynchronous Exceptions for Threads | Nick Maclaren |
N2270 | Incompatible changes in C++0x | B. Kosnik, M. Austern |
N2271 | EASTL -- Electronic Arts Standard Template Library | Paul Pedriana |
N2036 | Concepts for the C++0x Standard Library: Approach | D. Gregor, J. Willcock, A. Lumsdaine |
Evolution of proposals for C++0x | ||
These papers are the inspiration or history behind the active or accepted proposals. They are retained here as they capture a large part of the rationale that will produce C++0x. | ||
N2158 | LWG Issue 206: Linking new/delete operators | Howard E. Hinnant |
N2061 N2106 N2229 | Cloning and Throwing Dynamically Typed Exceptions | Beman Dawes |
N2107 | Exception Propagation across Threads | J. Maurer, A. Meredith |
N1851 | Improving Usability and Performance of TR1 Smart Pointers | V. Kliatchko, I. Rocha |
N1477 N1531 N1550 N1640 | New Iterator Concepts | D. Abrahams, J. Siek, T. Witt |
N1780 | Comments on LWG issue 233: Insertion hints in associative containers | Howard E. Hinnant |
N1398 N1452 | A Proposal to Add an Extensible Random Number Facility to the Standard Library | Jens Maurer |
N1835 | <stdint.h> for C++ | Steve Clamage |
N2022 | Input & Output of NaN and infinity for the C++ Standard Library | Paul A Bristow |
N2195 | Proposed Text for Chapter 29, Atomic Operations Library [atomics] | Peter Dimov |
N1682 N1907 N2285 | A Multi-threading Library for Standard C++ | Pete Becker |
N1875 | C++ Threads | Lawrence Crowl |
N1883 | Preliminary Threading Library Proposal for TR2 | Kevlin Henney |
N2090 N2178 | A Threading API for C++ | Peter Dimov |
N2094 N2184 | Multi-threading Library for Standard C++ | H. Hinnant |
N1569 | Proposed fixes to library inconsistencies | P.J. Plauger |
N2183 | Issues From Batavia | Howard E. Hinnant |
As there will be a continuing series of TRs there is no hard cut-off date for when proposals will be accepted. Once a proposal is ready it will ship as part of the next available TR. There will be natural 'quiet periods' where proposals are accumulating with little attention though, as work focusses on shipping accepted proposals in the next standard, or the next TR.
New Library Components Accepted into TR2 | ||
These propsals for new library components have full reviewed wording and have been voted into TR2 by the full committee. We do not yet have a draught TR at this early stage of the process, where attention is still focussed on C++0x. | ||
N1576 N1841 N1889 N1934 N1975 | Filesystem Library Proposal | Beman Dawes |
Enhancements Accepted into TR2 | ||
These propsals to enhance existing library features have full reviewed wording and have been voted into TR2 by the full committee. We do not yet have a draught TR at this early stage of the process, where attention is still focussed on C++0x. | ||
N2071 | Iostream manipulators for convenient extraction and insertion of struct tm objects | Martin Sebor |
New Library Components Planned for a Future TR | ||
These papers present libraries that are actively under consideration for a future TR. The Library Working Group is committed to an ongoing process of TRs, adopting libraries 'when they are ready'. As such, there is no target TR number associated with any given proposal. | ||
N1974 N2054 N2175 | Networking Library Proposal for TR2 | Christopher Kohlhoff |
N1843 N2067 N2137 | A Proposal to add Interval Arithmetic to the C++ Standard Library | H. Brönnimann, G. Melquiond, S. Pion |
N1871 | Range Library Proposal | Thorsten Ottosen |
N2068 | Range Library Core | Thorsten Ottosen |
N1872 N2059 | Proposal for new string algorithms | P. Droba, T. Ottosen |
N1873 | The Cursor/Property Map Abstraction | D. Kühl, D. Abrahams |
N1878 | A proposal to add an utility class to represent optional objects | Fernando Cacciola |
N1879 | A proposal to add a general purpose ranged-checked numeric_cast<> | Fernando Cacciola |
N1900 N2058 | Proposal to Add Date-Time to the C++ Standard Library | Jeff Garland |
N1939 | Any Library Proposal for TR2 | B. Dawes, K. Henney |
N1973 | Lexical Conversion Library Proposal for TR2 | K. Henney, B. Dawes |
N2044 | Memory Mapped Files And Shared Memory For C++ | Ion Gaztañaga |
N2046 N2136 | Bool_set: multi-valued logic | H. Brönnimann, G. Melquiond, S. Pion |
N2065 | A proposal to add stream objects based on fixed memory buffers | Alberto Ganesh Barbati |
N2086 | Signals and Slots for Library TR2 | Douglas Gregor |
N2101 | Hierarchical Data Structures and Related Concepts for the C++ Standard Library | B. Reiter, R. Rivera |
N2104 | A Proposal to Add Parallel Iteration to the Standard Library | Arch D. Robison |
N2231 | STL singly linked lists | Matt Austern |
N2050 | Proposal to Add a Dynamically Sizeable Bitset to the Standard Library | J. Allsop, A. Meredith, G. Prota |
Evolution of papers targetting future TRs | ||
These papers are the inspiration or history behind the active or accepted proposals. They are retained here as they capture a large part of the rationale that will produce TR2 and beyond. | ||
N1838 | A Proposal to Add Sockets to the Standard Library | Joseph S. Berríos |
N1925 | Networking proposal for TR2 (rev. 1) | Gerhard Wesp |
Papers With an Open Status | ||
These papers have been reviewed by the LWG, and while not yet compelling enough to plan for a future TR, they have not been outright rejected either. Authors are welcome to update and resubmit. | ||
N1668 | A Proposal to add Mathematical Functions for Statistics to the C++ Standard Library | Paul A Bristow |
N1425 | Proposal for Technical Report on C++ Standard Library Security | Martyn Lovell |
N1461 | Security and Standard C Libraries | Martyn Lovell |
N1744 | Big Integer Library Proposal for C++0x | Michiel Salters |
N1724 | A Library Approach to Initialization | Thorsten Ottosen |
N1476 N1530 N1641 | Iterator Facade and Adaptor | D. Abrahams, J. Siek, T. Witt |
N2225 | Improved integration with C arrays and strings | Thorsten Ottosen |
Proposals Rejected by LWG | ||
These proposals have been evaluated and actively rejected. The Library Working Group has no further interest in these proposals. | ||
N1681 N1739 | Adding a Policy-Based Smart Pointer Framework to the Standard Library | David B. Held |
N1692 N2020 N2143 | Proposal for an Infinite Precision Integer | M.J. Kronenburg |
N1718 | A Proposal to add the Infinite Precision Integer and Rational to the C++ Standard Library | M.J. Kronenburg |
N2144 | Proposal for exact specification of is modulo | M.J. Kronenburg |
N2199 | Improved min/max | Howard E. Hinnant |
N2206 | Consistent Insertion into Standard Containers | Alisdair Meredith |
N2212 | Support for sequence in-place construction | Thorsten Ottosen |
N2023 | erase(iterator) for unordered containers should not return an iterator | Joaquín Mª López Muñoz |
N1953 N2045 | Improving STL Allocators | Howard Hinnant ; Ion Gaztañaga |
N2257 | Removing unused allocator functions | Matthew Austern |
N1612 | How we might remove the remaining shortcomings of std::complex<T> | Thorsten Ottosen |
N1869 | Wording for imaginary numbers | Thorsten Ottosen |