N4432 Editor's Report -- Working Draft, Standard for Programming Language C++

Richard Smith
Google Inc


Special thanks to Jonathan Wakely for providing many editorial fixes.

Thanks to all those who have submitted editorial issues and those who have provided pull requests with fixes.

New Papers

Notable Changes to Issues and Papers as Moved

No motions have been voted into the working draft since N4296.

Other Notable Editorial Changes:

2013-04 CWG motion 4 moved that the proposed resolution of CWG1531 be adopted. However, due to an oversight, the motion stated that the resolution be taken from N3539 (which contains no wording for this issue) instead of the intended N3674. As a result, no modification was made to the standard for this issue. As the changes are editorial in nature, and the intent of the committee is clear, this Working Draft incorporates the changes for CWG1531 specified in N3674.

A bug has been fixed that resulted in cross-references to definitions (in [intro.defs] and [definitions]) missing the final number from their section.

Minor Editorial Fixes

A log of all editorial fixes made since N4296 is below:

commit 47bd8e96cf0528cab40c467cf65da25e7bd70bf5
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Thu Apr 9 13:23:27 2015 -0700

    Add back redundant 'of arithmetic type' requirement at request of lib-37799.

commit 8866e4d6d43bc4b7456852e64a2838681a9c77d3
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Apr 8 19:13:26 2015 -0700

    CWG1531 Definition of "access" (verb)

    This was supposed to be moved by 201304 CWG motion 4, but that motion
    referred to N3539, which did not have wording for this issue, so it
    was technically never moved. However, the clear intent of the committee
    was to move this resolution and the resolution is editorial in nature.

    Fixes #464.

commit 44e17b8279de070a676a2bcfb7a590aa541f4a5f
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Apr 8 17:41:21 2015 -0700

    [xref] Fix cross-references to definitions to be numbered correctly.

commit 80eaed01b588b21032541fcd6abb36bc516a7c00
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Apr 8 13:29:51 2015 -0700

    Update CD cover to match latest ISO copyright notice.

commit f961a9bed91a875108aa8c31a8dc6f14378b645d
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Apr 8 12:02:15 2015 -0700

    [c.math] Fix use of undefined term "arithmetic argument" to the intended "argument of arithmetic type".

    Remove the resulting "of arithmetic type" in two places where the type
    is constrained to be a specific arithmetic type later in the same

commit c40cc1478a486ff5bc69bb4bb0184bca2aa901bc
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Apr 8 11:51:39 2015 -0700

    [basic.fundamental] Fix misleading and miscapitalized "that is" in footnote.

commit f4cb613217ea77ebbc2ee91bd3bb55e00043dd89
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Apr 8 11:17:52 2015 -0700

    [dcl.dcl] Use a less contentious example for static_assert.

commit 43d9b349778d1c158cba0da61f2b3bb12dd55a19
Author: Aaron Ballman <aaron@aaronballman.com>
Date:   Wed Apr 8 17:31:14 2015 -0400

    Adding a bullet to [except.terminate] for condition variables

commit 50954bd1eb218fc3477940ef988b6ed9b83de3cc
Author: Nathan W. Panike <nathan.panike@gmail.com>
Date:   Tue Apr 7 07:27:40 2015 -0400

    Fix formatting of P

commit 0b7593f0e716910bab7c1511533b2f9b5a886de1
Author: FrankHB <frankhb1989@gmail.com>
Date:   Sun Apr 5 12:25:27 2015 +0000

    [support.start.term] Add missing semicolon.

commit 3698294637162bd746c1ce84e99bff9d7104c313
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed Apr 1 18:38:26 2015 +0100

    [iterator.operations], [is.heap] Remove indentation in itemdecl.

commit bb810fa01fc903133b3217e1556bb1fefb58b6fe
Author: Eelis van der Weegen <eelis@eelis.net>
Date:   Fri Apr 3 11:53:24 2015 +0200

    [basic.align], [syserr] Add missing semicolons.

commit 5c4a33067cf73deac00a6f56a323107d5e25440c
Author: Zhihao Yuan <lichray@gmail.com>
Date:   Wed Apr 1 20:31:18 2015 -0400

    [thread.lock.shared.cons] fix typos

    From stl@

commit d8d996265fcd2a656d03db1b0a448b6116870d1e
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed Apr 1 14:43:19 2015 +0100

    [bad.cast], [bad.typeid] Remove indentation in itemdecl.

commit 8a91772aba47bdcbe3b2a57340d7ced656d44dd9
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed Apr 1 14:39:11 2015 +0100

    [bad.alloc] Remove indentation in itemdecl.

commit 5dc7260ff4192beedf708dc45c9ba915daedaba1
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Mon Mar 30 10:39:42 2015 +0100

    [futures.async] Use American English spelling of "behavior"

    Fixes #463.

commit 5780ff8b184add41664bfb62cb5bee935907be8f
Author: timsong-cpp <rs2740@gmail.com>
Date:   Sat Mar 7 03:38:14 2015 -0500

    Correct link in basic_ostream::flush() description

    flush() "Behaves as an unformatted output function", but the link is to [ostream.formatted.reqmts]. Should link to [ostream.unformatted] like others in the same section.

commit 5599ece8d063beab627a983aada25cfbdb1eeac7
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Fri Feb 27 15:51:20 2015 +0000

    [unique.ptr], [func.require] Remove hyphens from "lvalue-reference"
    and "rvalue-reference".

    Fixes #446.

commit 6e2e0a7ac9c17debedaf7b5c3b6143ba51644bd2
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Mon Feb 23 21:12:15 2015 +0000

    [locale.codecvt.virtuals] Use code font for integer literals.

commit ae28126e4a088d44901debf7edf561b01502fa53
Author: Mitsuru Kariya <kariya_mitsuru@hotmail.com>
Date:   Fri Feb 13 01:02:15 2015 +0900

    [swappable.requirements] add comma

commit 70550aa2e9ea62bf53130f26778dbeb9cbef7b46
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jan 26 11:48:27 2015 -0800

    [string::assign] Add missing comma in expression. Thanks to
    tomalakgeretkal for reporting this.

    Fixes #434

commit ff1809d09d24895bd19b4ef5a886893dc0fcb3f4
Author: S. B. Tam <cpplearner@outlook.com>
Date:   Thu Jan 15 22:20:29 2015 +0800

    [temp.deduct] Correct "void ()(const int, int[5])"

commit e1fffe915cd926bcc810e0a0f4c5bf91d51ff222
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed Jan 7 16:44:07 2015 +0000

    [template.valarray] Use injected-class-name in valarray.

    Reported by Akira Takahashi. Fixes #345.

commit 6168263c640b1c93aedc1d174a46ef7b57b0f423
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Thu Dec 18 10:33:56 2014 -0800

    [dcl.spec.auto] Add implied word "trailing-return-type" to clarify the
    meaning of this sentence.

commit 9099ef8515e45d8751e9d400ca206f755e8cdbed
Author: Andrew Sutton <andrew.n.sutton@gmail.com>
Date:   Wed Dec 17 14:15:00 2014 -0500

    [stmt.ranged] Change italics to grammarterm.

commit 4938a49bff99d11e0249126c656439d01998fc7b
Author: Andrew Sutton <andrew.n.sutton@gmail.com>
Date:   Wed Dec 17 14:10:11 2014 -0500

    [stmt.ranged] Fix terminal formatting in BNF.

commit 8b86d944c43c2cdf7e1784f9002d5bb544eb17d4
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Sat Dec 13 23:58:36 2014 +0000

    [{i,o}stream.manip] Remove redundant "namespace std"

commit 668cad579f3fe748e717594ffdda7de7c2e0f41e
Author: Foo Bar <tkoeppe@google.com>
Date:   Sat Dec 13 23:15:43 2014 +0000

    [dcl.link] Fix indentation of example code

commit ac5c5dc798052fc5a080cdd9893de31bf0447065
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Dec 9 17:22:21 2014 -0800

    [dcl.fct] Format '...' in fixed-width font in the grammar and when it's
    later referred to in the text.

commit bbd976ee7671481ef56521ded59a6bb3f12ba3bf
Author: S. B. Tam <cpplearner@outlook.com>
Date:   Sat Dec 6 18:56:19 2014 +0800

    [expr.sizeof] redundant wording

    "an enumeration type whose underlying type is not fixed before all its enumerators have been declared" is an incomplete type.

commit 5e4fe90be52ddebf0314b4d98837408910a895b9
Author: Mitsuru Kariya <kariya_mitsuru@hotmail.com>
Date:   Tue Dec 2 03:20:43 2014 +0900

    [re.regiter.incr] fix typo

    The fuction position() is a member of the match_results, not a member of the sub_match.

commit 4025fe4b1a5ae3ef18c4095be7f054336f22a179
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Nov 30 15:17:20 2014 -0800

    Editorial fixes from review by Mike Miller.

commit 32ab3eccb7d58a1f2bac90ba336d9f11bea8e4b2
Author: rkawulak <Robert.Kawulak@gmail.com>
Date:   Sat Nov 29 20:58:36 2014 +0100

    Added missing line breaks for wording incorporated from N4230.

commit fd6afa3df49878d0f97575cc89b869b07132e959
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Nov 26 18:16:04 2014 -0800

    [basic.stc.auto] Fix apparent contradiction: the `static` implied by
    `thread_local` is not explicit, so this wording could be read as
    claiming that `thread_local` local variables have automatic storage
    duration, contradicting wording in several other parts of the standard
    and the design intent.

commit 7b28103a5857c141b559744a287b835f797992c5
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Nov 24 12:28:58 2014 -0800

    [unord.map.cnstr] Fix misapplication of edit for LWG2230.

    Reported by Alisdair Meredith.

commit bc3a17ab763eab648a78dcdd17bede890c26ad03
Author: Kevin M. Godby <kevin@godby.org>
Date:   Thu Nov 20 18:36:05 2014 -0600

    Fixes issue #409: undefined behavior index entry.

commit 3a8fed91a2cff07758e95843a796f73f44224c3a
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed Nov 19 23:48:49 2014 +0000

    [func.wrap.func.inv] Add missing semi-colon.

    Reported by Stephan T. Lavavej. Fixes #408.