N4688 Editors' Report -- Programming Languages -- C++

2017-07-30
Richard Smith (editor) (Google Inc)
Dawn Perchik (co-editor) (Embarcadero Technologies Inc)
Thomas Köppe (co-editor) (Google DeepMind)
<cxxeditor@gmail.com>

Acknowledgements

Special thanks to Jens Maurer, Jonathan Wakely, and Eelis van der Weegen for performing many of the editorial fixes since N4659.

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

New papers

Motions incorporated into working draft

Core working group motions

CWG motion 1: Core issue resolution for 1 issue in "ready" status applied:

CWG motion 2: Core issue resolutions for 6 issues in "tentatively ready" status applied, resolving 8 issues:

CWG motion 3: P0727R0 "Temporary objects vs temporary expressions", resolving 3 core issue:

CWG motion 4: P0683R1 "Default member initializers for bit-fields"

CWG motion 5: P0704R1 "Fixing const-qualified pointers to members"

CWG motion 6: P0409R2 "Allow lambda capture [=, this]"

CWG motion 7: P0306R4 "Comma omission and comma deletion"

CWG motion 8: P0329R4 "Designated initialization"

CWG motion 9: P0428R2 "Familiar template syntax for generic lambdas"

CWG motion 10: P0702R1 "Language support for constructor template argument deduction"

CWG motion 11: P0734R0 "Concepts" with changes, see below

CWG motion 12 applies to the Modules TS.

Library working group motions

LWG motion 13-14 apply to the Coroutines TS.

LWG motion 15-22 apply to the Ranges TS.

LWG motion 23-29 apply to the Networking TS.

LWG motion 30 applies to the Parallelism TS.

LWG motion 31: Library issue resolutions for 12 issues in "Ready" and "Tentatively Ready" status applied:

LWG motion 32: Library issue resolutions for 2 issues in "Immediate" status applied:

LWG motion 33: P0463R1 "Endian, just endian"

LWG motion 34: P0682R1: "Repairing elementary string conversions", resolving 1 library issue:

LWG motion 35: P0739R0 "Some improvements to class template argument deduction integration into the standard library", resolving 2 as-yet-unnumbered library issues

LWG motion 36: P0674R1 "Extending make_shared to support arrays", resolving 1 library issue:

Notable editorial changes

Motions

Stable name changes

The "Cross references from ISO C++ 2014" section has been replaced by a "Cross references from ISO C++ 2017" section.

Minor editorial fixes

A log of editorial fixes made since N4659 is below. This list excludes changes that do not affect the body text or only affect whitespace or typeface. For a complete list including such changes (or for the actual deltas applied by these changes), consult the draft sources on github.

commit 9b13e3785ef95f3c7ac159177a03bccd610b774b
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Jul 30 16:13:25 2017 -0700

    [dcl.array] Consolidate redundant, repetitive, and somewhat incorrect
    examples and notes on multidimensional arrays.

    Fixes #1645

commit 19c63142301038e843bfd23676e036768ab35c96
Author: S. B. Tam <cpplearner@outlook.com>
Date:   Sun Jul 30 23:50:06 2017 +0800

    [expr.const] Move p7 next to p3.

commit bbca26c5e79d52a1622ff0cedeb92897a1350bf9
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Apr 5 20:23:15 2017 +0200

    [expr.type.conv] Clarify if ... otherwise ladder.

    Fixes #1591.

commit 9f16f5ae4a54f2478d268c408100c5a005d3f278
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Jul 22 00:57:55 2017 +0200

    [expr] Use 'possibly converted' for discarded-value expression.

    Fixes #1597.

commit 8d7a1a767f933e917b6bb20eea3e1c5fabf1cc0c
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Mar 29 20:42:39 2017 +0200

    [class.mfct.non-static], [class.this] Define and use cv member function.

    Fixes #447.

commit 1314cc49a106fac2acba29e0e301343f857ba252
Author: Casey Carter <Casey@Carter.net>
Date:   Wed May 10 13:24:59 2017 -0700

    Change the return type of monotonic_buffer_resource's deleted assignment

    ... to monotonic_buffer_resource& for consistency with the default definition of the builtin assignment operator. This change has no normative effect, it only eliminates the inconsistency as a potential source of confusion.

    Since the return type of deleted functions is not observable, this change is editorial.

commit c85f24dee9feb613c9454db572cd674234f3159f
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Sat Mar 25 16:20:40 2017 +0000

    [string.cons] Consolidate two functions into one description

commit f897604bd8cab510a843153db0133c3d5e13912f
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Jul 22 00:31:23 2017 +0200

    [class.temporary] Remove note giving questionable implementation advice.

    And move the surviving part of the note to before the
    corresponding example.

    Fixes #1674.

commit 10e4c7437ba63c2975a160e84aecffdbfafd990b
Author: Hubert Tong <hstong@ca.ibm.com>
Date:   Mon Jul 24 17:45:16 2017 -0400

    [over.call.object] Reference postfix-expression in call syntax correctly

    The grammar production corresponding to the call syntax has
    _postfix-expression_ as the callee operand. [over.call.object] appears
    to refer to this operand as the _primary-expression_ in the syntax.

commit ad966418d82b4e5480ad390a5f75ffbf37385f37
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Jul 28 17:16:07 2017 -0700

    [temp] Add missing ';' to grammar for concept-definition.

    Despite being a normative change, this matches the overwhelmingly
    obvious intent of the committee.

    Fixes #1686

commit afd6d4f065219067f372dafd1bb590a912775b41
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Jul 28 17:13:28 2017 -0700

    [temp.constr.normal] Give a proper definition for "normalization".

commit 38408888321282f9c0788ec9c40e2bd2f464617b
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Jul 28 16:47:17 2017 -0700

    [temp.constr.order] Fix spacing in example.

commit aa4b1ae864fb85377570ba9775b5d34d79772922
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Jul 28 16:42:40 2017 -0700

    [temp.constr.order] Clarify description of subsumption and ordering by constraints.

commit 508cd59e6c9b23441ce5ed46e5012ccd1a8aed51
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Jul 28 11:24:51 2017 -0700

    [dcl.fct.def] Reword = default ; and = delete ; introductory text for clarity.

commit 182937c038dec15efaf5521d53d06960d6f1d661
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Jul 28 11:20:18 2017 -0700

    [dcl.fct] Move use of "parameter-type-list" to after its definition.

    Split rules on function redeclarations out of rules for determining the
    type of an individual function.

commit ac6360546cb1eb982cf8d2123ceb2c99a0156b95
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Jul 26 14:22:49 2017 -0700

    [expr.prim.req] Use grammar terms rather than undefined phrases when
    referring to kinds of *requirement*.

commit ff1242c4aa50958fa0380208eb0f2c45e3a8fea2
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Tue Jul 25 13:49:18 2017 +0100

    [meta.endian] Simplify wording, avoid "shall"

commit 17820beb537c1576fe906228d741b64b9b2e8fc1
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jul 24 11:22:34 2017 -0700

    [temp] Fix example to use valid expression in requires-clause.

commit 02574b8575c200095aa281d0886a73fe58c00580
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jul 24 00:37:34 2017 -0700

    [temp.inst] Tweak explanation in example.

commit de236bab92922adc3c38f6fc0eb1fb4ec2a17c16
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jul 24 00:36:24 2017 -0700

    [temp.inst] Fix typo 'the the'.

commit a76a3886035f484866add3a12af43c3b21143aa1
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jul 24 00:34:07 2017 -0700

    [temp.concept] Remove redundancy: the global scope is a namespace scope.

commit 9a94a384336cb37974b3a8803dcf2424812ec854
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jul 24 00:27:55 2017 -0700

    [temp.class.spec] Fix typo "the primary" -> "the primary template".

commit 7240fc98453bad27eb6112ae98b0f8e8fad8e39a
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jul 24 00:25:43 2017 -0700

    [temp.mem.func] Add introductory text to new example to separate it from the prior example.

commit 99013e76613ec877b912b18b3ffeb9d2b1cf8f1c
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jul 24 00:20:39 2017 -0700

    [expr.prim.req.compound] Switch to passive voice.

commit 1f1b944f2d849974ae01a5f2c45883d8213c3653
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jul 24 00:04:15 2017 -0700

    [temp.param] Switch to passive voice.

commit 6568af0b4270bfc1497882a108741fa01ebeaa70
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Jul 23 23:54:34 2017 -0700

    [temp] Add note around example to explain what it's an example of, and
    add missing paragraph numbers.

commit d37aa67b1bf795d4d98e79a9cc7ca8278608dc4f
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Jul 23 23:48:17 2017 -0700

    [temp] Fix confusion between two different forms of template-declaration.

    When the template-head is followed by a concept-definition, it is not
    technically followed by a declaration, so avoid claiming that it is.

commit 4d88f30cdbb3d49019935f15340b88b79382c202
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Jul 23 23:38:15 2017 -0700

    [over.over] Switch to passive voice.

commit 78a8901592907f8904ec824b2966414900586869
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Jul 23 23:25:18 2017 -0700

    [expr.prim.req.nested] Remove incorrect (out of date) note.

commit ca3cb945e042dc5bf63edfeeaf6d2e42ce2a3669
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Jul 23 15:01:59 2017 -0700

    [expr.prim.req] Remove redundant note that repeats what the prior example just said.

commit 763a125ca686aae8aaed3fd8f779bf5ad7ca1a5c
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Jul 23 14:58:25 2017 -0700

    [expr.prim.req] Repair meaningless "A requirement is one that [..]" phrasing.

commit fcbeb9e63ad175128a1d7a9f5dc70536f5e2be81
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Jul 23 14:44:30 2017 -0700

    [temp.constr.atomic] Split long paragraph into three.

commit 119b98d70d24612e425fb2ae1b6caffb93689b89
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Thu Jul 20 22:30:39 2017 +0100

    [filebuf.virtuals] Refer to return values specified in Effects

    Fixes #1552

commit ecad20efeaf0c244ea6a64d79484a0145a51242b
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Thu Jul 20 09:03:27 2017 -0700

    [expr.mptr.oper] Rephrase wording for symmetry with P0704R1.

commit 32fffbe4796ab0852f7bdf66b6d48d2e2b5e61ea
Author: Eelis <github.com@contacts.eelis.net>
Date:   Tue Jul 18 21:02:33 2017 +0200

    [iterator.synopsis, template.bitset] Add missing whitespace. (#1673)

commit b7ac9558b63434daa2217b35512225bc3213ebb4
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Jul 15 15:04:54 2017 -0700

    [expr.const] Fix example of integral constant expression conversion to
    involve integral constant expressions.

    Fixes #1627.

commit cd2cc5c4709f4b8295d71d9fed92f3f2b2393f77
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Jul 15 14:49:27 2017 -0700

    [alg.equal] Fix misapplication of P0467R2: change "no" to "an" in bullet
    3.2.

    Fixes #1578.

commit b226afc6dcddc427668a47710d13064de23b0167
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Jul 15 14:39:03 2017 -0700

    [stringbuf.virtuals] Note in Returns: element that the return value for
    non-error cases is specified in the Effects: element.

    Fixes #1552

commit b63b10a9aeb8a7ef0b3f2cbbb9a20be88f0b56b7
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Jul 15 23:21:32 2017 +0200

    [variant.visit], [tuple.apply], [futures.task.members] add cross-references for INVOKE to [func.require]

    Fixes #1480.

commit 8d45c56ea7224266462c6c807987676bcf35e93e
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Jul 15 14:13:14 2017 -0700

    Add missing index entries for 'alignas', alignof', 'noexcept'.

commit 6114f86c1479a9ebf3b27fae694e9157a1a12423
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Sat Jul 15 15:51:17 2017 -0400

    Move reference to LIA-1 into a new section 'Bibliography'

commit 488ef200887417bfa6124896549c09447a8c2fa9
Author: JF Bastien <github@jfbastien.com>
Date:   Mon Jul 10 22:39:29 2017 -0400

    Clarify a note on cmpxchg

    The "thus" part absolutely does not follow from the preceding note text, and isn't even correct on its own. Since this is a note I assume this is an editorial change and doesn't need an issue.

commit f268d45e51ddadcb21036185900a602c9a502413
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Mon Jul 10 17:43:08 2017 +0100

    [filesystem_error.members] Rename to [fs.filesystem_error.members]

    Fixes #1633

commit 331b6a67d4fa55d1f8d4c9eb300c4aa7ce63d27e
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Mon Jul 10 17:41:18 2017 +0100

    [stringbuf.virtuals] balance parentheses in seekoff table

commit 48c0e75206dc98cfcb5ea88ebe29fa8858f6448a
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed Jun 28 11:42:56 2017 +0100

    [memory.syn] Add reinterpret_pointer_cast to synopsis

commit 921ef046dc2daab44f6c7638aef3a03f85a06909
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Apr 7 21:14:43 2017 +0200

    Replace 'encouraged' with 'should'.

    Consistent with ISO Directives, Part 2, encouragement for
    implementations is supposed to use 'should', not 'encouraged'.

    Fixes #1601.

commit 89fccb39352b0c30b07272e38487dbf9fb67ed76
Author: Eelis van der Weegen <eelis@eelis.net>
Date:   Sat Apr 8 12:45:21 2017 +0200

    [temp.deduct.type] Use \cv instead of \grammarterm{cv-list}.

commit 0740877e0dd13b15c411f4b8f1fc489ecffec52f
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Apr 5 23:10:33 2017 +0200

    [string.streams], [file.streams] Use simple-template-id when naming base classes.

    Fixes #1551.

commit 0207b6c6c40a884292a2a7ff1ea8c8a7d08b9d9f
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Apr 5 21:14:24 2017 +0200

    Spell 'well-defined' with a hyphen when it is an adjective.

    Fixes #1587.

commit 2044cbd25d588150bb0a19cc8df2992a88a29e1e
Author: Richard Smith <richard-github@metafoo.co.uk>
Date:   Sat Jul 15 11:41:57 2017 -0700

    [basic.def.odr] Replace mid-sentence period with "; and"

commit 95ac3d662c788cdabc382509be4c273e5c80b334
Author: lewissbaker <lewissbaker@users.noreply.github.com>
Date:   Thu Jul 6 21:42:46 2017 +0930

    [stmt.if] Fix spelling mistake in 'if constexpr' wording. (#1653)

commit 48da313836eb57fd8282649c6c17b50a9cb97c3a
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Jun 20 14:59:57 2017 -0700

    [lex.string] Remove mention of trigraphs from raw string literal example.

    Fixes #1635.

commit 1268aa09067159b94a6f83267d0a539b81dbbdc6
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Jun 20 14:45:07 2017 -0700

    [meta.unary.prop] Fix typo 'remove_all_extents<T>' which should say
    'remove_all_extents_t<T>', introduced editorially in commit 79974877.

    Fixes #1644.

commit c92319d1caf3462e1a3a745ea3947d56c974383a
Author: Evan Wallace <onlyone@senet.com.au>
Date:   Mon Jun 19 01:56:28 2017 +1000

    [basic.stc.dynamic.safety] Update cross-reference to effects of using invalid pointer values. (#1636)

    Updated the Note describing "invalid pointer values" to refer to [basic.stc] rather than [basic.stc.dynamic.deallocation].

    The relevant description of "invalid pointer values" reads:
    "Indirection through an invalid pointer value and passing an invalid pointer value to a deallocation function have undefined behavior. Any other use of an invalid pointer value has implementation-defined behavior."

    Previously the reference was correct, as this text was in [basic.stc.dynamic.deallocation]/4, but the text was moved to [basic.stc]/4 by P0137R1; without updating the reference.

    The Note also incorrectly claims that using an invalid pointer value is always undefined, when it can be implementation defined in certain cases, but I did not fix this in this commit; as updating the reference makes this nuance sufficiently clear.

    This is an editorial issue as it only changes non-normative text.

commit 5eeec28487dd99e9e2441fc3e64e33b7a957a8fe
Author: Eelis <github.com@contacts.eelis.net>
Date:   Sat Jun 17 15:45:17 2017 +0200

    For 'signal-safe', refer to [support.signal], not [csignal.syn]. (#1640)

commit 8c005473ba69d52314d5c399c9c9adb6429cc7ed
Author: Zhihao Yuan <lichray@gmail.com>
Date:   Thu May 18 11:36:43 2017 -0500

    [any.nonmembers] fix LWG2769 resolution

    Restores the changes made by #1220

commit e8c2b45b618ef13843dd9fbc3e26f1520c8522a8
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed May 17 23:06:18 2017 +0100

    [fs.dir.entry.obs] Fix position of error_code arguments

    Fixes #1630

commit ae6271c88727c3fabe7dd8258f8687b369d83d6d
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Thu Apr 20 23:06:37 2017 +0100

    [fs.filesystem.syn] Update synopsis for filesystem::absolute

commit c42d836d952219eba62edf1ef47ad763b5e57a54
Author: Eelis <github.com@contacts.eelis.net>
Date:   Tue Apr 18 11:59:59 2017 +0200

    [streambuf.virt.put] Fix logic error in the specification of the overflow() effects, introduced by 0b640ed8161937d31f31e251c297b658c559a978. (#1613)

commit d5c0fd378f01b1aa9710ac8f2b61a6bc79b27aa5
Author: Eelis <github.com@contacts.eelis.net>
Date:   Tue Apr 18 11:57:08 2017 +0200

    [class.protected] Add missing full stop at end of sentence. (#1614)

commit 70a0afc6dfbd5699ab562ebb93b269abde2834ba
Author: Daniel Grunwald <grunwald@axivion.com>
Date:   Wed Apr 12 19:19:45 2017 +0200

    [fs.class.path] Add missing semicolon

commit 6debd6037c34befdb156e805912917d154ea658f
Author: Daniel Grunwald <grunwald@axivion.com>
Date:   Thu Apr 6 20:47:58 2017 +0200

    [iomanip.syn] Fix std::setfill() template declaration

commit c17b1771be3f51dcea4d7670392ba9052a33c0b1
Author: Daniel Grunwald <grunwald@axivion.com>
Date:   Thu Apr 6 20:37:21 2017 +0200

    [cmath.syn] Fix hypot(long double,long double) overload

commit 578c39a0d74543a49da66483059debd7fb1316bc
Author: Daniel Grunwald <grunwald@axivion.com>
Date:   Thu Apr 6 20:19:21 2017 +0200

    [cstring.syn], [cwchar.syn] Add a bunch of missing semicolons

commit 07e4d9ceea888564765a2821a0a7d883dd315acb
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Apr 11 14:19:51 2017 -0700

    [except.spec] Add missing '~' in comment in example.

    Thanks to Sergey P. Derevyago for reporting this!

commit 98b39118c529e4ed72d707ba325412a61d734f16
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Mar 28 21:55:42 2017 +0200

    [filesystems] Change '!predicate' phrasing to 'predicate is false'.

    Fixes #1535.

commit dff391e0df8e4c8f4bb0eb74ecc6bf2578c18fd0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Mar 31 21:58:25 2017 +0200

    [lib] Use nullptr, not 0, for null pointer values. (#1586)

    Fixes #208.

commit e030dc8c97ac3da75817ac4867e7c403e55de252
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Mar 28 21:38:48 2017 +0200

    [any.cons] Use 'contained value', not 'contained object'. (#1582)

    Fixes #1580.

commit 389cc2d957a5e9f133c631fa1c23e14bc3dc97fe
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Tue Mar 28 16:20:44 2017 +0100

    [any.bad_any_cast] fix incorrect references to bad_any_access

commit a0f6514c5e51714da31a6d0a7aa9a218908a3c86
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Sun Mar 26 18:07:52 2017 +0100

    [locale.money.get.members] Fix missing parameter type

commit 5f7e2c6f5711ba3818519ec3b3f2c84d23a8fe93
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Sun Mar 26 17:41:45 2017 +0100

    [facet.ctype.char.virtuals] Add missing \pnum

commit b12acc0d4aa1095ed0306e31155c1662205c2437
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Sun Mar 26 16:44:14 2017 +0100

    [category.ctype] Replace unnecessary placeholder type by the usual 'see below'

commit fc9599aea58a7ea7e671f9b304cc1fe3f89c2a8b
Author: S. B. Tam <cpplearner@outlook.com>
Date:   Sat Mar 25 20:37:39 2017 +0800

    [utility] Change 'nonzero' to more appropriate words. (#1575)

commit 5d438d2569decb770062966bb347cc4b1eb075b0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Mar 23 22:14:14 2017 +0100

    [mem.poly.allocator.mem], [string.view.iterators] Replace 'method' with 'member function'.

    Fixes #1573.

commit 6d5ac829064fb264cac2805b0e8fdf193b32b62c
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Mar 22 00:25:58 2017 +0100

    [intro.memory] Replace undefined 'field' with 'member' in note.

    Fixes #1569.

commit f04c1dcee22cc5f1dd6d99448f8de4da8ba31ed3
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Fri Mar 24 23:54:54 2017 +0000

    [except.handle, except.spec, fs.op.temp_dir_path] Fix typos