Document number: |
N2133=06-0203 |
Date: |
2006-11-03 |
Project: |
Programming Language C++ |
Reference: |
ISO/IEC IS 14882:2003(E) |
Reply to: |
Pete Becker |
|
Roundhouse Consulting, Ltd. |
|
petebecker@acm.org |
N2134=06-0204, Working Draft, Standard for Programming
Language C++, contains the working draft of the standard, with all of the changes
approved at the Portland meeting other than LWG DR 531. It also has a reorganization
of the introductory material in the discussions of char_traits
and
basic_string
, to clearly separate descriptive text from requirements.
In most cases, code snippets that changed do not have change markers. It
is generally clear from context which ones changed. The material on
random number generators also does not have change bars. The changes are tracked
in N2111 and its predecessors.
Changes:
- Core
- DR 58
- DR 301 (N1896)
- DR 305
- DR 367, with minor editoral changes
- DR 370
- DR 372
- DR 414 (fixed by DR 305)
- DR 415
- DR 454, slightly reworded
- DR 468
- DR 477
- DR 480
- DR 494 (fixed by DR 372)
- DR 500 (fixed by DR 372)
- DR 505
- DR 506
- DR 514
- DR 515
- DR 516, slightly reworded
- DR 517
- DR 521
- DR 522
- DR 524
- DR 526, slightly reworded
- DR 534 (fixed by DR 301)
- DR 557
- N1988 -- Extended Integer Types, slightly reworded
- N2118 -- Rvalue References, slightly reworded
-
- Library
- DR 520
- DR 521
- DR 530
- DR 535
- DR 537
- DR 538
- DR 540, slightly reworded
- DR 541
- N2111 -- Random Number Generation
- N2114 -- long long Goes to the Library
- N2072 -- stream manipulators for monetary values, reworded; see comments, below
- Comments
- DR 531 is about inserters and extractors for zero-length character arrays.
The current standard doesn't say what happens, which has the effect of
leaving it to implementors to decide what to do. DR 531 addresses this, but
doesn't quite cover it right. The result would be to require writing to the last
element of a zero-length array. Rather than put this requirement into the draft,
I referred this one back to the LWG.
- N2072 adds stream manipulators for inserting and extracting money. It's written
somewhat differently from the corresponding text for
the existing manipulators. There are some serious problems in the way manipulators
are currently described, and the formulation in N2072 fixes some of them.
I decided to make the descriptions uniform for now, and to rewrite all of the
manipulator descriptions for the next working draft. (That's mostly a time
management decision.)
- Editorial
- Changed format of definitions to match ISO requirements
- Removed
lib.
prefix from section labels for library contents
- Added appendix with cross-reference from section labels to section numbers
- Fixed
static_assert
example in [dcl.dcl]/4
- Removed redundant bullet item at end of [temp.deduct.type]/5
- Removed duplicate words from [conv.prom]/1
- Added missing argument declaration in last line of example
in [temp.expl.spec]/4
- Rephrased last sentence before example in [temp.expl.spec]/5
- Added C and C++ header names from TR1 to tables 12, 13, and 128
- Reorganized
char_traits
- Reorganized introductory material on
basic_string
, moving
requirements out of the opening portions of [basic.string] and into a new section,
[string.require], after the basic_string
synopsis.
- Added two
NULL
macros to table 124 and corrected item counts,
as pointed out in LWG 544
Thanks to Walter Brown, Howard Hinnant, and Mike Miller for proofreading
the new working draft.