Document number:  
Date: 2013-04-24
Project: Programming Language C++
Reply-to: Beman Dawes <>

Library Proposals Status List (Revision 1) DRAFT

This status list tracks the progress of post-C++11 standard library proposals and lists pre-C++11 library proposals of still of interest. See the current Call for Library Proposals for information about how to submit a proposal to the C++ standards committee.

Proposals are tracked regardless of which working or study group is responsible.

Groups responsible for proposals



Proposals accepted by the LEWG are then passed to the LWG for review.

Post-C++11 Library Proposals

Document Number Status Owner Title / Annotation Authors
N3230 Active LWG Constexpr Library Additions: future Benjamin Kosnik


N3333 Active   Hashing User-Defined Types in C++1y J. Yasskin, C. Carruth
N3339 Active   A Preliminary Proposal for a Deep-Copying Smart Pointer Walter E. Brown
N3344 Closed N/A Toward a Standard C++ 'Date' Class S. Pacifico, A. Meredith, J. Lakos
N3350 Active SG9 A minimal std::range<Iter> Jeffrey Yasskin
N3352 Active SG6 C++ Binary Fixed-Point Arithmetic Lawrence Crowl
N3355   SG1 C++ Distributed Counters Lawrence Crowl
N3356   SG1 C++ Mutable Threads Chris Mysen


N3360   SG4 Networking Library Status Report Christopher Kohlhoff
N3374   SG4 SG4: Networking K. Kloepper, N. Meyer




Using Asio with C++11

Christopher Kohlhoff



Urdl: a simple library for accessing web content

Christopher Kohlhoff

N3398 N3336

Active LWG

String Interoperation Library

Beman Dawes



Proposal to Add Decimal Floating Point Support to C++

Dietmar Kühl


Active Merge with

Parallelizing The Standard Algorithms Library

J. Hoberock, O. Giroux, V. Grover, J. Marathe, et al.



A Database Access Library [Note 1]

Bill Seymour



Vector loops and Parallel Loops

Robert Geva



Concurrent Unordered Associative Containers for C++

A. Robison, A. Malakhov, A. Laksberg


Active Merge with

A C++ Library Solution To Parallelism

A. Laksberg, H. Sutter, A. Robison, S. Mithani



Call Stack Utilities and std::exception Extension Proposal

Aurelian Melinte



async and ~future

Herb Sutter





Algorithm std::iota and its modifications.

Vladimir Grigoriev




Simple Database Integration in C++11 [Note 1]

Thomas Neumann




Comparison of Two Database Access Methodologies [Note 1]

Bill Seymour

N3465 N2882



Adding heterogeneous comparison lookup to associative containers for TR2 (Rev 2) [Handle with N3573]

Joaquín Mª López Muñoz




C++ Internet Protocol Classes

A. Fabijanic, G. Obiltschnig




TLS and Parallelism

Pablo Halpern


N3494 New SG6 A proposal to add special mathematical functions according to the ISO/IEC 80000-2:2009 standard Vincent Reverdy
N3495 New LEWG inplace realloc Ariane van der Steldt
N3500 New LEWG New assert variants [Handle with N3604] Olaf van der Spek
N3505 N3399 N3365 N3335 N3239 etc.  Review LWG Filesystem Library Proposal Beman Dawes
N3506 New LEWG A printf-like Interface for the Streams Library [Discussion to include other potential proposals] Zhihao Yuan
N3508 N3390 N1939 Review LEWG Any Library Proposal (Revision 2) B. Dawes, K. Henney
N3509 New SG9 Operator Bool for Ranges Olaf van der Spek
N3513 N3456 Review SG9 Range arguments for container constructors and methods, wording revision 2 [Handle in a time slot when LWG and LEWG folks are available] Jeffrey Yasskin
N3514 New


A Proposal for the World's Dumbest Smart Pointer Walter Brown
N3521 New LEWG convert() utility function Jeffrey Yasskin


N3525 New LEWG Polymorphic Allocators [Handle with N3575 and any other allocator proposals] Pablo Halpern
N3527 N3406 N1878 Review LEWG A proposal to add a utility class to represent optional objects (Revision 2) F. Cacciola, A. Krzemieński
N3530 New SG1 Leveraging OpenMP infrastructure for language level parallelisation D. Gove, N. Copty, M. Wong
N3531 N3468 N3402 Review LWG User-defined Literals for Standard Library Types (version 3) Peter Sommerlad
N3532 N2648 Review LEWG C++ Dynamic Arrays L. Crowl, M. Austern
N3533 N3434 N3353 Review SG1 C++ Concurrent Queues L. Crowl, C. Mysen
N3534 New SG1 C++ Pipelines A. Mackintosh, A. Berkan
N3535 N3395 N3354 Review SG1 C++ Stream Mutexes Lawrence Crowl
N3542 N3417 N3375 Review SG6 Proposal for Unbounded-Precision Integer Types Pete Becker
N3543 N3479 N3443 Review LWG Priority Queue, Queue and Stack: Changes and Additions [LWG will consult LEWG before acting] G. Powell, T. Blechmann
N3546 New LWG TransformationTraits Redux [LWG will consult LEWG before acting] Walter E. Brown
N3547 New SG6 Three <random>-related Proposals [SG6 pinged] Walter E. Brown
N3548 New SG6 Conditionally-supported Special Math Functions for C++14 [SG6 pinged] Walter E. Brown
N3554 New SG1 A Parallel Algorithms Library J. Hoberock, O. Giroux, V. Grover, H. Sutter, et al.
N3555 N3507 N3484 N3420 Review SG4 A URI Library for C++  G. Matthews, D. Berris
N3556 New SG1 Thread-Local Storage in X-Parallel Computations P. Halpern, C. Leiserson
N3557 New SG1 Considering a Fork-Join Parallelism Library Pablo Halpern
N3558 N3428 N3327 Review SG1 A Standardized Representation of Asynchronous Operations N. Gustafsson, A. Laksberg, H. Sutter, S. Mithani
N3561 New SG1 Semantics of Vector Loops R. Geva, C. Nelson
N3562 N3378 Review SG1 Executors and schedulers, revision 1 M. Austern, L. Crowl, C. Carruth, N. Gustaffson, et al.
N3563 N3446 Review SG1 C++ Mapreduce C. Mysen, L. Crowl, A. Berkan
N3564 N3328 Review SG1 Resumable Functions N. Gustafsson, D. Brewis, H. Sutter, S. Mithani
N3565 New SG4 IP Address Design Constraints Aleksandar Fabijanic
N3568 N3427 N2094 Review SG1 Shared locking in C++ Howard Hinnant
N3570 N3431 Review LWG Quoted Strings Library Proposal (Revision 1) Beman Dawes
N3571 New SG1 A Proposal to add Single Instruction Multiple Data Computation to the Standard Library P. Estérie, M. Gaunard, J. Falcou
N3572 New LEWG Unicode Support in the Standard Library Mark Boyall
N3573 New LWG Heterogenous extensions to unordered containers [Handle with N3465] Mark Boyall
N3574 New EWG??? Binding stateful functions as function pointers [EWG pinged.] Mark Boyall
N3575 New LEWG Additional Standard allocation schemes [Handle with N3525 and any other allocator proposals] Mark Boyall
N3579 N3466 Review LWG A type trait for signatures [LWG may pass it back to LEWG] Mike Spertus
N3581 New LWG Delimited iterators Mike Spertus
N3584 N3404 Review LWG Wording for Accessing Tuple Fields by Type Mike Spertus
N3585 N3450 Review LWG Iterator-Related Improvements to Containers (Revision 2) Alan Talbot
N3586 New LWG Splicing Maps and Sets A. Talbot, H. Hinnant
N3588 New LWG make_unique Stephan T. Lavavej
N3593 N3510 N3430 Review LEWG std::split(): An algorithm for splitting strings [Schedule after N3609 (string_view) and N3513 (Range support). Do not schedule when SG9 is meeting.] Greg Miller
N3594 New LEWG std::join(): An algorithm for joining a range of elements [Schedule after N3593 (split), N3609 (string_view), and N3513 (Range support). Do not schedule when SG9 is meeting.] Greg Miller
N3600 New SG1 C++ Latches and Barriers Alasdair Mackintosh
N3603 New SG4 A Three-Class IP Address Proposal Christopher Kohlhoff
N3604 New LEWG Centralized Defensive-Programming Support for Narrow Contracts [Handle with N3500] J. Lakos, A. Zakharov
N3606 N3411 Review LWG Extending std::search to use Additional Searching Algorithms Marshall Clow
N3607 New LWG Making non-modifying sequence operations more robust [Assigned to LWG as it fixes a defect in existing standard library components and the proposed resolution is intertwined with existing library wording.] M. Spertus, A. Pall
N3609 N3512 N3442 N3334 Review LEWG string_view: a non-owning reference to a string, revision 3 [Much LWG interest, so may wish to schedule when LWG folks available] Jeffrey Yasskin
N3611 N3489 N3414 N3363 Review SG6 A Rational Number Library for C++ Bill Seymour
N3612 New LEWG Desiderata of a C++11 Database Interface [Note 1] Thomas Neumann
N3618 New SG1 What can signal handlers do? (CWG 1441) Hans Boehm
N3619 New LWG A proposal to add swappability traits to the standard library Andrew Morrow
N3620 New SG4 Network byte order conversion Kyle Kloepper

Post-C++11 Accepted Library Proposals

Document Number Date
Owner Title / Annotation Authors
N3346 N3301 2012-10 N/A Defect Report: Terminology for Container Element Requirements Pablo Halpern


2012-10 N/A

Making Operator Functors greater<>

Stephan T. Lavavej

N3302 N3228 2012-10 N/A Constexpr Library Additions: complex B. Kosnik, G. Dos Reis, D. Krügler

N3462 N3436



std::result_of and SFINAE

E. Niebler, D. Walker, J. de Guzman

N3469 N3303 N3229



Constexpr Library Additions: chrono, v3

B. Kosnik, D. Krügler

N3470 N3304



Constexpr Library Additions: containers, v2

B. Kosnik, D. Krügler

N3471 N3305 N3231



Constexpr Library Additions: utilities, v3

B. Kosnik, D. Krügler

N3545 2013-04 N/A An Incremental Improvement to integral_constant Walter E. Brown
N3644 N3585 N3450 2013-04 N/A Null Forward Iterators Alan Talbot
N3668 N3608 N3511 2013-04 N/A exchange() utility function Jeffrey Yasskin
N3658 N3493 2013-04 N/A Compile-time integer sequences Jonathan Wakely

Pre-C++11 Library Proposals

New Library Components Previously Considered for Future Inclusion
These papers present libraries that were actively under consideration for a future TR, when work on TR2 was deferred pending completion of C++11. These papers were viewed positively at the time, but were due at least one more revision before any adoption, and most will need some reworking to reflect the addition of C++11 language facilities.
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
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
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
N2050   Proposal to Add a Dynamically Sizeable Bitset to the Standard Library J. Allsop, A. Meredith, G. Prota
N2648   C++ Dynamic Arrays L. Crowl, M. Austern
N2639   Algorithms for permutations and combinations, with and without repetitions Hervé Brönnimann
Papers With an Open Status
These papers have been reviewed by the LWG, and were not deemed compelling enough to plan for a future TR, but had not been outright rejected either.
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
N1476 N1530 N1641   Iterator Facade and Adaptor D. Abrahams, J. Siek, T. Witt
N2225   Improved integration with C arrays and strings Thorsten Ottosen
N2388   Pointer Arithmetic for shared_ptr Pablo Halpern
N2533   Tuples and Pairs Alisdair Meredith
N2486   Alternative Allocators and Standard Containers Lance Diduck
N2233   basic_string operator << Lawrence Crowl
N2698 N2718 N2754   Additional type traits: has_trivial_destructor_after_move and has_trivial_reallocation Rodrigo Castro Campos


Note 1 - There is currently insufficient support for database bindings to merit further work in this area. Should sufficient support arise, along with people willing to do the work, work will resume.