Document number: N2003=06-0073

Howard E. Hinnant
2006-04-21

LWG Paper Summary

Contents



General Documentation



N1836  TR1 Date: 2005-06-24

N1901 C++0x Standard Library wishlist (revision 5) Date: 2005-10-14
Related papers:

N1766 C++0x Standard Library wishlist (revision 4) Date: 2005-03-04
N1752 C++0x Standard Library wishlist (revision 3) Date: 2005-01-17
N1732 C++0x Standard Library wishlist (revision 2) Date: 2004-11-05
N1689 C++0x Standard Library wishlist Date: 2004-09-10

N1905 Working Draft, Standard for Programming Language C++ Date: 2005-10-19
Related papers:

N1804 Working Draft, Standard for Programming Language C++ Date: 2005-04-27
N1733 Working Draft, Standard for Programming Language C++ Date: 2004-11-05
N1655 Unofficial Working Draft, Standard for Programming Language C++ Date: 2004-07-16
N1577 Working Draft, Standard for Programming Language C++ Date: 2004-02-07
N1316 Draft Expanded Technical Corrigendum Date: 2001-09-13


Improvements to existing facilities



N1953 Upgrading the Interface of Allocators using API Versioning Date: 2006-02-14
Status: Open.

Berlin [2006-04] Split interest.


N1913 A Proposal to Improve const_iterator Use (version 3) Date: 2005-10-20
Status: C++0X.

Berlin [2006-04]: Voted into the C++0X working draft.

Related papers:

N1865 A Proposal to Improve const_iterator Use (version 2) Date: 2005-08-24

Mont Tremblant [2005-10]: Overall interest for C++0X.

N1674 A Proposal to Improve const_iterator Use from C++0X Containers Date: 2004-08-31

Lillehammer [2005-04]: Mixed interest. The no votes were just because people didn't see the need.


N1880 A proposal to extend numeric_limits for consistent range query (Revision 1) Date: 2005-08-29
Status: Open.

Mont Tremblant [2005-10]: Interested for C++0X. Pete will provide improved wording.


N1870 resize_capacity Date: 2005-08-24
Status: Open.

Mont Tremblant [2005-10]: string already has this functionality (shrink to fit). There is interest in providing it for vector.


N1870 Require O(1) size Date: 2005-08-24
Status: Open.

Mont Tremblant [2005-10]: Possible interest.


N1870 zero() Date: 2005-08-24
Status: Closed.

Mont Tremblant [2005-10]: No interest at this time because auto is not part of the language.


N1870 map/set::splice() Date: 2005-08-24
Status: Open.

Mont Tremblant [2005-10]: Possible interest with other function names.


N1870 vector/string::set_buffer() Date: 2005-08-24
Status: Open.

Mont Tremblant [2005-10]: Possible interest for vector, but difficult with allocators. No interest for string because it is not contiguous (but see lwg 530).


N1870 assign(n, F) Date: 2005-08-24
Status: Open.

Mont Tremblant [2005-10]: Possible interest, signficant concerns.


N1870 lazy_insert/lazy_find Date: 2005-08-24
Status: Open.

Mont Tremblant [2005-10]: Interest in solving problem, not sure this is the right approach.


N1856-N1862 Rvalue Reference Recommendations for Chapters 20-27 Date: 2005-08-26
Status: Ready, pending language support.
Related papers:

N1771 Impact of the rvalue reference on the Standard Library Date: 2005-03-03

Mont Tremblant [2005-10]: Interested for C++0X, assuming the committee adopts the necessary language support.


N1822 A Proposal to add a max significant decimal digits value to the C++ Standard Library Numeric limits Date: 2005-06-14
Status: C++0X.

Berlin [2006-04]: Voted into the C++0X working draft.

Mont Tremblant [2005-10]: Interested for C++0X.


N1981 Uniform Use of std::string Revision 1 Date: 2006-04-05
Status: C++0X.

Berlin [2006-04]: Voted into the working draft with minor modfications.

Related papers:

N1802 Uniform Use of std::string Date: 2005-04-18
Status: Open.

Mont Tremblant [2005-10]: Interested for C++0X. Pete and Beman tasked with working out conflicts between this and the file system proposal.


N1780 Comments on LWG issue 233: Insertion hints in associative containers Date: 2005-04-23
Status: Open.
Reference: lwg issue 233.


N1599 Issue 431: Swapping containers with unequal allocators Date: 2004-02-11
Status: Open.
Reference: lwg issue 431.


N1589 complex and Issue 387 Date: 2004-02-11
Status: Open.
Reference: lwg issue 387.
Related papers:

N1388 Enhancing numerical support Date: 2002-09-07


C compatibility



TR1 C compatibility
Status: C++0X.

Related papers:

N1835 <stdint.h> for C++ Date: 2005-06-23

Mont Tremblant [2005-10]: N1835 discussed with strong support for C++0X. The more general TR1 C compatibility package not yet specifically discussed.



Basic Utilities



TR1 <type_traits>
Status: C++0X.


TR1 reference_wrapper
Status: C++0X.


N1939 Any Library Proposal for TR2 Date: 2006-02-24
Status: Open.

Berlin [2006-04]: Strong interest for TR2.


N1900 Proposal to Add Date-Time to the C++ Standard Library Date: 2005-10-02
Status: Open.

Mont Tremblant [2005-10]: Interested for TR2. Needs formal proposed wording.


N1879 A proposal to add a general purpose ranged-checked numeric_cast<> (Revision 1) Date: 2005-08-29
Status: Review.

Mont Tremblant [2005-10]: Interested for TR2.


N1878 A proposal to add an utility class to represent optional objects (Revision 1) Date: 2005-08-29
Status: Open.

Mont Tremblant [2005-10]: Interested for TR2. Significant concerns about the interface including:


N1870 <std>/<tr1> Date: 2005-08-24
Status: Open.

Mont Tremblant [2005-10]: There was some interest, but a majority opposed. Leaving open for now but will close soon without further support.


N1870 restricted_bool Date: 2005-08-24
Status: Closed.

Berlin [2006-04]: No interest.


N1508 Proposal to add Deletion Traits to the Standard Library Date: 2003-09-13
Status: Unknown.



Smart pointers



TR1 shared_ptr/weak_ptr
Status: C++0X.


N1851 Improving Usability and Performance of TR1 Smart Pointers Date: 2005-08-25
Status: Open.

Mont Tremblant [2005-10]: Interested in some parts of this proposal:

Pre Berlin: Peter has implemented:

shared_ptr::shared_ptr( Y * p, D d, A a );
shared_ptr::reset( Y * p, D d, A a );

in boost::shared_ptr. Stateful/non-equal allocators are supported, allocations/deallocations are done via rebound copies of 'a'. A test that exercises the functionality can be found here.


N1739 Adding a Policy-Based Smart Pointer Framework to the Standard Library Date: 2004-11-08
Status: Closed.

Berlin [2006-04]: This is a presentation of N1681 which was reviewed and rejected in Lillehammer.

Related papers:

N1681 A Proposal to Add a Policy-Based Smart Pointer Framework to the Standard Library Date: 2004-09-01

Lillehammer [2005-04]: No support for a policy-based framework at this time. This is a refinement of Loki, but, while Loki is in use, this refinement isn't. We'll consider such a proposal later, if there is widespread practice and strong arguments for it.



Communication



N1925 Networking proposal for TR2 (rev. 1) Date: 2005-12-04
N1974 Boost Network Library Query Date: 2006-03-31
Status: Open.

Berlin [2006-04]: There is a lot of overlap in these two propsals and Gerhard has offered to help combine them into one. Strong interest for TR2.


N1838 A Proposal to Add Sockets to the Standard Library Date: 2005-06-24
Status: Closed.

Mont Tremblant [2005-10]: There is clear interest for a proposal addressing this issue, but the lwg does not believe the library presented herein is what we are looking for.



Containers



TR1 tuple
Status: C++0X.


TR1 array
Status: C++0X.


TR1 unordered
Status: C++0X.


N1871 Range Library Proposal Date: 2005-08-27
Status: Open.

Mont Tremblant [2005-10]: Interested for TR2. There were concerns about the use of new language features which are not yet a sure thing.


N1850 Towards a Better Allocator Model Date: 2005-08-25
Status: Open.

Mont Tremblant [2005-10]: No interest in making the default allocator polymorphic. Possible interest in pursuing some system by which a container's allocator is propagated to the container's value_type.


N1847 vector<bool>: More Problems, Better Solutions Date: 1999-10-20
Status: Open.

Mont Tremblant [2005-10]: There is interest in deprecating it and providing the functionality in a different container (perhaps bitvector). There currently is no bitvector proposal.



Iterators



N1870 next/prior Date: 2005-08-24
Status: Open.

Mont Tremblant [2005-10]: Possible interest.


N1672 Adapting N1640=04-0080 To C++0x Date: 2004-09-10
Related papers:

N1640 New Iterator Concepts Date: 2004-04-10
N1550 New Iterator Concepts Date: 2003-10-16
N1531 New Iterator Concepts Date: 2003-09-22
N1477 New Iterator Concepts Date: 2003-04-28

There is significant interest in moving forward with new iterator concepts for C++0X, but there is no concrete proposal before the lwg at this time.


N1641 Iterator Facade and Adaptor Date: 2004-04-10
Related papers:

N1530 Iterator Facade and Adaptor Date: 2003-09-22
N1476 Iterator Facade and Adaptor Date: 2003-04-28

There is significant interest in moving forward with iterator adators for C++0X, but there is no concrete proposal before the lwg at this time. This is blocked by iterator concepts.



Algorithms



N1873 The Cursor/Property Map Abstraction Date: 2005-08-26
Status: Open.

Mont Tremblant [2005-10]: Possible interest for C++0X.


N1870 is_sorted / nonunique_copy Date: 2005-08-24
Status: Open.

Berlin [2006-04]: Strong interested in is_sorted returning bool. Slightly less interest in an sorted_up_to returning iterator. Dietmar notes that is_sorted is a trivial call to find_adjacent. Interest in is_heap (or is_heap_up_to) returning bool or iterator as appropriate. No interest in nonunique_copy.


N1990 Proposed Text for minmax (N1840) Date: 2006-04-06
Status: C++0X.

Berlin [2006-04]: Voted into the C++0X working draft except that reference_wrapper was removed as it is no longer needed due to CWG issue 106 (references to references).

Related papers:

N1840 C++0x Proposal: Function template std::minmax and / or algorithm std::minmax_element Date: 2005-06-28

N1870 minmax Date: 2005-08-24

Mont Tremblant [2005-10]: Interested for C++0X.



Function Objects



TR1 result_of
Status: C++0X.


TR1 mem_fn
Status: C++0X.


TR1 bind
Status: C++0X.


TR1 function
Status: C++0X.


N1870 cast functors Date: 2005-08-24
Status: Open.

Mont Tremblant [2005-10]: Possible interest.


N1667 Accessing the target of a tr1::function object Date: 2004-07-16
Status: Unknown.



Multithreading



N1907 A Multi-threading Library for Standard C++, Revision 1 Date: 2005-10-19
Status: Open.

Berlin [2006-04]: Howard and Pete to work on some modifications to this proposal. EWG also very interested in closely cooperating on this. Split feelings on whether this should target C++0X or TR2.

Related papers:

N1682 A Multi-threading Library for Standard C++ Date: 2004-09-10
N1834 A Pleading for Reasonable Parallel Processing Support in C++ Date: 2005-06-24
N1815 ISO C++ Strategic Plan for Multithreading Date: 2005-05-02

N1883 Preliminary Threading Library Proposal for TR2 Date: 2005-08-29
Status: Open.

Mont Tremblant [2005-10]: Strong interest in pursuing both this proposal, and a proposal more along the lines of boost::threads (resulting in N1907).



Numerics



TR1 <random>
Status: C++0X.

Berlin:

Related papers:

N1933 Improvements to TR1's Facility for Random Number Generation Date: 2006-02-23
Status: New.

N1932 Random Number Generation in C++0X: A Comprehensive Proposal Date: 2006-02-23
Status: New.

N1914 A Proposal to Add Random-Number Distributions to C++0x Date: 2005-10-21
Status: New.

N1588 On Random-Number Distributions for C++0x Date: 2004-02-13

Lillehammer [2005-04]: Roughly doubles the number of distributions, from 9 to 19. Includes most of the distributions that are in common use in multiple fields. Strong support.


TR1 special math functions
Status: Open.

Berlin [2006-04]: Had support of the LWG for C++0X, but not that of the full committee.

Related papers:

N1884 Further Restrictions on Special Math Functions Date: 2005-08-26
Status: Ready.

Mont Tremblant [2005-10]: Strong interest in treating as a defect applied to TR1. Not voted on. Will be applied if and when we move this library to the standard.

N1697 Restrictions on Order Parameters for Bessels and Other Function Families Date: 2004-09-10
Status: Unknown.

N1665 Guidelines for Domain Errors in Mathematical Special Functions Date: 2004-07-15
Status: Unknown.


N1870 statistics Date: 2005-08-24
Status: Open.

Berlin [2006-04]: Strong interest in iterator-based statistic functions. No interest in other functions in this proposal.


N1869 Wording for imaginary numbers Date: 2005-08-24
Status: Closed. Related papers:

N1612 How we might remove the remaining shortcomings of std::complex<T> Date: 2004-03-29

Mont Tremblant [2005-10]: Rejected. Not broadly useful enough for standardization.


N1843 A Proposal to add Interval Arithmetic to the C++ Standard Library Date: 2005-08-01
Status: Open.

Berlin [2006-04]: Sylvain gave update, reviewed applications of the library. Discussed pass-by-value vs pass by const ref. Steve gave update on user base (it exists). User community actively discussing it. Sun has open source interval library (looser than GPL). Strong interest for TR2.

Mont Tremblant [2005-10]: Possible interest for TR2. Concerns about sufficiently large user base to justify standardizing. Concerns about implementing "extension" functions. Hard to implement - worth the functionality?


N1977 Decimal Types for C++: Draft 4 Date: 2006-04-03
Status: Decimal TR registered.

Berlin [2006-04]: Apply to ISO for registration of a Technical Report on decimal types for C++. N1977 is the initial draft of that technical report.

Related papers:

N1965 Decimal Types for C++: Draft 3 Date: 2006-02-25

N1839 Decimal Types for C++: Second Draft Date: 2005-06-24

Mont Tremblant [2005-10]: Discussed.


N1744 Big Integer Library Proposal for C++0x Date: 2005-01-13
Status: Closed.

Lillehammer [2005-04]: We haven't seen an analysis of use cases, so we don't know which communities this is important to, what their needs are, and whether this type meets their needs.


N1718 A Proposal to add the Infinite Precision Integer and Rational to the C++ Standard Library Date: 2004-11-01
Status: Open.

Berlin [2006-04]: Interest in infinite precision half of this paper. There exists weak support for rational. Needs numeric_limits support. Interested more in basic arithmetic than the math functions. gcd and lcm desired.

Related papers:

N1692 A Proposal to add the Infinite Precision Integer to the C++ Standard Library Date: 2004-07-01

Lillehammer [2005-04]: No support for adopting this proposal. Insufficient detail.


N1668 A Proposal to add Mathematical Functions for Statistics to the C++ Standard Library Date: 2004-08-11
Status: Open.

Lillehammer [2005-04]: The main argument against this proposal is that a high-quality implementation would be extremely hard; this is about 150 functions, most of which have several parameters. Issue: are we willing to standardize something with the expectation that most implementations will be low quality? Are these functions ones where poor accuracy is acceptable? (If so, we could do this for float only, and drop the double and long double versions.)

Mixed interest.

No consensus for bringing this forward at this meeting. What might change people's mind: 1. Reasoning for why to include these functions and exclude others. 2. A smaller set of functions. 3. If this is intended to support an easy-to-use statistical package, then show the interface for that statistical package first.



Text Facilities



TR1 <regex>
Status: C++0X.


N1975 Filesystem Library Proposal for TR2 (Revision 3) Date: 2006-04-04
Status: TR2.

Berlin [2006-04]: Voted into TR2.

Related papers:

N1934 Filesystem Library Proposal for TR2 (Revision 2) Date: 2006-02-22

N1889 Filesystem Library Proposal for TR2 (Revision 1) Date: 2005-09-30

N1889 updated in response to comments on N1841. Not yet reviewed.

N1841 Filesystem Library Proposal Date: 2005-08-23

Mont Tremblant [2005-10]: Strong interest for TR2.

N1576 Filesystem library query Date: 2004-02-06

Lillehammer [2005-04]: Not yet a proposal, but a heads-up. Library to manipulate filenames, directories, etc. There was a little bit of discussion of how this interacts with fstream. People were generally favorable to the idea. Those who are interested should follow the link and read the library documentation.


N1872 Proposal for new string algorithms in C++0x Date: 2005-08-26
Status: Open.

Mont Tremblant [2005-10]: Interested for TR2. Some concern was expressed over the interface and choice of functions. There was not a clear concensus as to whether it would be better to go with generic free functions, basic_string free functions, or basic_string member functions (for the algorithms).


N1991 Proposed Text for defaultfloat (N1842) Date: 2006-04-06
Status: C++0X.

Berlin [2006-04]: Voted into C++0X with the following changes:

Related papers:

N1842 A Proposal to add two iostream manipulators to the C++ Standard Library Date: 2005-07-27

Mont Tremblant [2005-10]: Strong support for the automatic manipulator for C++0X except that no one liked the name. Several alternatives were suggested but there was no clear "right" name.

No support for the noadjust manipulator because it means the same thing as the current manipulator right.


N1803 Simple Numeric Access Date: 2005-04-18
Status: Open.

Berlin [2006-04]: interest in wstring overloads. Still split on targeting C++0X or TR2.

Mont Tremblant [2005-10]: Strong support for this proposal. There is no concensus as to whether it should target C++0X or TR2.


N1973 Lexical Conversion Library Proposal for TR2 Date: 2006-03-21
Status: Open.

Berlin [2006-04]: Interest for TR2.


N1957 Proposed Library Additions For Code Conversion Date: 2006-02-21
Status: Open.

Berlin [2006-04]: Ready for TR2. Delay one meeting from now to allow time for alternate proposals.

Martin has two concerns:

  1. You can't construct a wstring_convert object with a code_cvt object.
  2. Error handling and recovery not robust enough.

Related papers:

N1750 Critique of Code Conversion Proposal (N1683) Date: 2005-01-13

N1683 Proposed Library Additions for Code Conversions Date: 2004-09-10

Lillehammer [2005-04]: Strong support for TR2, some support for C++0X. The only semantic issue that was controversial was whether to parameterize on containers or iterators. Strong support for the iterator parameterization. Bill will create a detailed proposal for the next pre-meeting mailing.


Hardware


Performance TR Technical Report on C++ Performance Date: 2006-02-15
Status: Open.

Issue: Interest in <iohw.h> and <hardware> for C++0X? Not yet discussed.