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

2014-11-19  
Richard Smith  
Google Inc  
`<cxxeditor@gmail.com>`

## Acknowledgements

Special thanks to Dawn Perchik for performing the bulk of the edits required for
core and library issues.

Thanks to all those who have [submitted editorial
issues](https://github.com/cplusplus/draft/wiki/How-to-submit-an-editorial-issue)
and those who have provided pull requests with fixes.

## New Papers

 * N4296 is the current working draft. It replaces N4140.
 * N4297 is this Editor's Report for the current working draft.

### Notable Changes to Issues and Papers as Moved

#### CWG motion 1

CWG1875, which was in 'ready' status in N4192, was neither listed as an
issue to be applied nor as an issue to be skipped. Its resolution has
not been applied here, and it will once again be in 'ready' status for
the next meeting.

CWG1651 and CWG1893, which were listed as being applied by this motion,
are not applied, because their wording is in CWG1299 which is not being
applied. Those issues will be in 'drafting' status along with CWG1299
at the next meeting.

CWG1777 has no effect, because its changes are entirely superseded by
CWG motion 12.

#### CWG motion 5

Update example in [except.throw]p7 to use `std::uncaught_exceptions`
rather than the now-deprecated `std::uncaught_exception`.

#### CWG motion 12

This change conflicts with several other changes moved at Urbana. These
conflicts are resolved as follows:

  * CWG1351, CWG1552, and CWG1397 introduced new uses of the term
    *exception-specification* that refer to the semantic entity rather than the
    grammar term. These have been fixed where appropriate. Likewise,
    cross-references for newly-introduced references to *throw-expression* have
    been changed from [except.throw] to [expr.throw].

  * CWG1777 changed wording that was removed and replaced by this change.
    The new wording from this change carries the intent of CWG1777 so the
    edits from CWG1777 have been ignored.

  * CWG1351 adds wording to map between exception specifications and
    "sets of potential exceptions". This wording has been updated to
    match the new defintion and semantics of exception specifications,
    after consultation with CWG.

The change from "*exception-specification*" to "exception specification"
in [dcl.fct.def.default]p3 has not been applied, because this wording
clearly intends to refer to the grammar element.

#### CWG motion 13

Fix left-fold/right-fold mixup in example in [temp.variadic] to match the
normative wording.

#### LWG motion 10

LWG2408: Add a wording change from N3843's "Common wording" that was not
included in the library issue applying N3843 to the standard. This change
has no normative effect but removes the appearance of inconsistency. Also
reword this change and some of the other wording changes in this issue
for clarity.

#### LWG motion 11

LWG2361, LWG2387: Format *qualified-id* as a grammar term.

#### LWG motion 12

Update Annex C's existing mentions of `unary_function` and `binary_function`
to clarify that they no longer exist.

#### LWG motion 14

Changes to [unique.ptr.runtime.modifiers] removed text that was not present; in
the first paragraph, the only applied change was the insertion of a default
argument. This makes the standard match the described "after" state.

#### LWG motion 16

[unord.set.overview], [unord.multiset.overview]: Replace meaningless
"Container\_move\_assign" with the intended "Pred".

### Other Notable Editorial Changes:

Added new subclause [diff.cpp14] (C.4) for compatibility differences between
the working draft and ISO C++14.

## Minor Editorial Fixes

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

    commit 274362c055983716b5f08f21bc393417fa0aae3f
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Tue Nov 11 23:44:09 2014 +0000
    
        Fix collation order
    
    commit 4e3ff5ecd1a02937be72dc0bc1df7b5a5db5eab2
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Tue Nov 11 21:55:44 2014 +0000
    
        Fix more bad spacing
    
    commit 1b00493b35fa7cec8178c34dfe573404d391b8ef
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Tue Nov 11 21:41:42 2014 +0000
    
        [declarators] Fix bad spacing in 'new-expressions'
    
    commit 05fff17e3c999655743c156a4b88aa3732938ad2
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Tue Nov 11 21:31:08 2014 +0000
    
        Introduce definition 'placement new-expression' and apply consistently
    
    commit 68ae5d450d583fb4616021d2c5ad10466d704332
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Mon Nov 10 17:35:40 2014 -0800
    
        [associative.reqmts] Italicise grammar term 'qualified-id'.
    
    commit 9d8b739814baff6af5c5b43c65cf49e2f36f89f7
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Mon Nov 10 16:03:56 2014 -0800
    
        [basic.types] Replace "array of unknown size" with proper phrase "array
        of unknown bound".
    
    commit efa66469b3e098c2fc2d10fb6a9fa6fb13edae0e
    Author: Jonathan Wakely <cxx@kayari.org>
    Date:   Mon Nov 10 14:06:19 2014 +0000
    
        [insert.iterators], [stream.iterators] Use injected class names.
    
    commit a0ace5b890c05a5735fa673293203e64e85b385c
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Sun Nov 9 12:37:44 2014 -0800
    
        [diff] Add subclause for incompatibilities with C++2014.
    
    commit ffb98e176512ae6b428c35cdef4f2dd80a7752dd
    Author: Jonathan Wakely <cxx@kayari.org>
    Date:   Sat Nov 8 16:03:28 2014 +0000
    
        [vector.bool] Use code font for allocator_traits
    
    commit c9c5f1279fac53d884ceefaee9cefc2579c3fe78
    Author: Jonathan Wakely <cxx@kayari.org>
    Date:   Sat Nov 8 03:55:54 2014 +0000
    
        [bad.exception] Fix indentation of itemdecl contents.
    
    commit 7b9fbb49b8489505ddf5b7fcbe3f0b6289f52f7d
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Fri Nov 7 13:25:27 2014 -0800
    
        [cpp.predefined] Stop trying to reuse a footnote for two different bullets;
        that breaks hyperlinking.
    
    commit e6b6462ec0d0284d59cd6efe5b67ad4a86b11b50
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Fri Nov 7 09:59:42 2014 -0800
    
        CWG1998 Additional sources of xvalue expressions
        
        Fixed editorially per discussion with CWG; the original wording and
        revised wording are normatively equivalent.
    
    commit 9b83e84a72f5914421cb91c8cfcc02f79261a7f4
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Thu Nov 6 10:32:10 2014 -0600
    
        Fix formatting of INVOKE
    
    commit a2c1d2e53fc3084521bfb7495b9081d3f5e5b9ca
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Wed Nov 5 13:53:42 2014 -0800
    
        [temp.deduct.call] Give a name to the function parameter in an example.
    
    commit 5942beb59ab6ad6462cee008053c0dd974ee26b1
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Wed Nov 5 13:52:48 2014 -0800
    
        [temp.arg.template] Remove some "call it"s.
    
    commit 89508dda123affaa165075f43741d82ade3c4830
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Mon Nov 3 14:30:48 2014 -0800
    
        [dcl.fct] Add paragraph breaks into overlong paragraph that covers several
        independent topics.
    
    commit a52a7aa1b80d7723f504cdc5981ddb0a65b476d7
    Author: Thomas Köppe <tkoeppe@google.com>
    Date:   Thu Oct 9 17:46:40 2014 +0100
    
        Replace 'prototype' with 'declaration'
