2016-11 post-Issaquah mailing available

The 2016-11 mailing of new standards papers is now available.

NOTE: A number of these papers have already been publicized on this blog. This is the complete list including ones not previously publicized.


N4615 WG21 2016-10-28 Telecon Minutes Jonathan Wakely 2016-10-28 2016-11   WG21  
N4616 Response to NB Comments: SC22 N5097, ISO/IEC PDTS 19568 Part 2, Library Fundamentals, Part 2 Barry Hedquist 2016-11-12 2016-11   WG21  
N4617 Programming Languages -- C++ Extensions for Library Fundamentals, Version 2 DTS Geoffrey Romer 2016-11-28 2016-11   WG21  
N4618 Working Draft, Standard for Programming Language C++ Richard Smith 2016-11-28 2016-11 N4606 WG21  
N4619 Editor's Report -- Working Draft, Standard for Programming Language C++ Richard Smith 2016-11-28 2016-11   WG21  
N4620 Working Draft, C++ Extensions for Ranges Eric Niebler, Casey Carter 2016-11-27 2016-11   WG21  
N4621 Editor's Report for the Ranges TS Casey Carter 2016-11-27 2016-11   WG21  
N4622 Programming Languages -- C++ Extensions for Ranges PDTS Eric Niebler, Casey Carter 2016-11-27 2016-11   WG21  
N4623 WG21 2016-11 Issaquah Minutes Jonathan Wakely 2016-11-28 2016-11   WG21  
N4624 PL22.16 2016-11 Issaquah Minutes Jonathan Wakely 2016-11-28 2016-11   WG21  
N4625 Programming Languages -- C++ Extensions for Networking PDTS Jonathan Wakely 2016-11-28 2016-11   WG21  
N4626 Working Draft, C++ Extensions for Networking Jonathan Wakely 2016-11-28 2016-11 N4612 WG21  
N4627 Networking TS - Editor's Report Jonathan Wakely 2016-11-28 2016-11   WG21  
N4628 Working Draft, Technical Specification on C++ Extensions for Coroutines Gor Nishanov 2016-11-27 2016-11   WG21  
N4629 Editor's report for the Coroutines TS Gor Nishanov 2016-11-27 2016-11   WG21  
N4630 Working Draft, C++ extensions for Concepts Andrew Sutton 2016-11-28 2016-11 N4549 WG21  
N4631 Editor's report for the Concepts TS Andrew Sutton 2016-11-28 2016-11   WG21  
P0003R5 Removing Deprecated Exception Specifications from C++17 Alisdair Meredith 2016-11-11 2016-11 P0003R4 Core  
P0019R4 Atomic View H. Carter Edwards, Hans Boehm, Olivier Giroux, James Reus 2016-11-09 2016-11 P0019R3 Library Evolution  
P0020R4 Floating Point Atomic H. Carter Edwards, Hans Boehm, Olivier Giroux, JF Bastien, James Reus 2016-11-09 2016-11 P0020R3 Library Evolution  
P0053R3 DRAFT C++ Synchronized Buffered Ostream Lawrence Crowl, Peter Sommerlad, Nicolia Josuttis 2016-11-12 2016-11 P0053R2 Library Evolution, Concurrency, Library  
P0057r7 Wording for Coroutines Gor Nishanov 2016-11-11 2016-11 P0057r6 Core, Library  
P0067R5 Elementary string conversions, revision 5 Jens Maurer 2016-11-11 2016-11 P0067R4 Library  
P0100R2 Comparison in C++ Lawrence Crowl 2016-11-27 2016-11 P0100R1 Evolution  
P0156R1 Variadic lock_guard (Rev. 4) Mike Spertus 2016-10-21 2016-11 P0156R0 Library  
P0195R2 Pack expansions in using-declarations Robert Haberlach, Richard Smith 2016-11-08 2016-11 P0195R1 Core  
P0237R4 Wording for fundamental bit manipulation utilities Vincent Reverdy, Robert J. Brunner 2016-11-28 2016-11 P0237R3 Library Evolution, SG14, Numerics  
P0266R2 Lifting Restrictions on requires-Expressions Walter E. Brown 2016-11-10 2016-11 P0266R1 Core  
P0270R2 Removing C dependencies from signal handler wording Hans Boehm 2016-11-27 2016-11 P0270R1 Core, Library  
P0298R2 A byte type definition Neil MacIntosh 2016-11-11 2016-11 P0298R1 Library Evolution  
P0304R1 C++ Standard Library Issues Resolved Directly In Issaquah Marshall Clow 2016-11-11 2016-11 P0304R0 Library  
P0306R2 Comma elision and comma deletion Thomas Koeppe 2016-11-27 2016-11 P0306R1 Evolution, Core, WG14  
P0329R2 Designated Initialization Wording Tim Shen, Richard Smith 2016-11-21 2016-11 P0329R1 Core  
P0370R3 Ranges TS Design Updates Omnibus Casey Carter, Eric Niebler 2016-11-17 2016-11 P0370R2 Library  
P0403R1 Literal suffixes for basic_string_view Marshall Clow 2016-11-09 2016-11 P0403R0 Library Evolution  
P0414R2 Merging shared_ptr changes from Library Fundamentals to C++17 Jonathan Wakely 2016-11-10 2016-11 P0414R1 Library  
P0417R1 C++17 should refer to ISO/IEC 10646 2014 instead of 1994 (R1) Beman Dawes 2016-11-25 2016-11 P0417R0 Core, Library  
P0418R2 Fail or succeed: there is no atomic lattice JF Bastien 2016-11-09 2016-11 P0418R1 Concurrency, Library  
P0426R1 Constexpr for std::char_traits Antony Polukhin 2016-11-08 2016-11 P0426R0 Library Evolution  
P0430R1 File system library on non-POSIX-like operating systems Jason Liu, Hubert Tong 2016-11-24 2016-11 P0430R0 Library, Library Evolution  
P0431R0 Correcting Evaluation Order for C++ Hyman Rosen 2016-09-14 2016-11   Evolution, Core  
P0435R1 Resolving LWG Issues re common_type Walter E. Brown 2016-11-11 2016-11 P0435R0 Library  
P0436R1 An Extensible Approach to Obtaining Selected Operators Walter E. Brown 2016-11-09 2016-11 P0436R0 Evolution  
P0440R1 Floating Point Atomic View H. Carter Edwards, Hans Boehm, Olivier Giroux, JF Bastien, James Reus 2016-11-09 2016-11 P0440R0 Library Evolution  
P0441R1 Ranges: Merging Writable and MoveWritable Casey Carter, Eric Niebler 2016-11-17 2016-11 P0441R0 Library  
P0464R1 Revisiting the meaning of "foo(ConceptName,ConceptName)" Tony Van Eerd, Botond Ballo 2016-11-08 2016-11 P0464R0 Evolution  
P0476R1 Bit-casting object representations JF Bastien 2016-11-11 2016-11 P0476R0 Library Evolution, Library, Core  
P0490R0 Core language changes addressing National Body comments for CD C++17 Jens Maurer 2016-11-11 2016-11   Core  
P0492R0 Proposed Resolution of C++17 National Body Comments for Filesystem Beman Dawes, S. Davis Herring, Nicolai Josuttis, Jason Liu, Billy O'Neal, P.J. Plauger, Jonathan Wakely 2016-11-26 2016-11   Library  
P0493R0 Atomic maximum/minimum Al Grant, Bronek Kozicki 2016-11-08 2016-11   Library Evolution, Concurrency  
P0494R0 contiguous_container proposal Ildus Nezametdinov 2016-11-05 2016-11   Library Evolution, SG14  
P0495R0 Concurrency Safety in C++ Data Structures Lawrence Crowl 2016-11-27 2016-11   Concurrency  
P0497R0 Fixes to shared_ptr support for arrays Jonathan Wakely 2016-11-10 2016-11   Library  
P0500R0 Resolved Module TS (N4610) Issues Gabriel Dos Reis 2016-11-11 2016-11   Core  
P0502R0 Throwing out of a parallel algorithm terminates--but how? JF Bastien, Bryce Adelstein Lelbach, H. Carter Edwards 2016-11-09 2016-11   Concurrency, Library  
P0503R0 Correcting library usage of "literal type" Erich Keane 2016-11-09 2016-11   Library  
P0504R0 Revisiting in-place tag types for any/optional/variant Jonathan Wakely 2016-11-09 2016-11   Library  
P0505R0 Wording for GB 50 Howard Hinnant 2016-11-09 2016-11   Library  
P0507R0 Core Issue 1343: Sequencing of non-class initialization Jens Maurer 2016-11-10 2016-11   WG21  
P0508R0 Wording for GB 58 Howard Hinnant 2016-11-10 2016-11   Library  
P0509R0 Updating "Restrictions on exception handling" James Dennett 2016-11-10 2016-11   Library  
P0510R0 Disallowing references, incomplete types, arrays, and empty variants Erich Keane 2016-11-10 2016-11   Library  
P0511R0 Deduction guide for std::array Zhihao Yuan 2016-11-09 2016-11   Library Evolution  
P0512R0 Class Template Argument Deduction Assorted NB resolution and issues Mike Spertus, Richard Smith, Faisal Vali 2016-11-10 2016-11   Core  
P0513R0 Poisoning the Hash Lisa Lippincott 2016-11-10 2016-11   Library  
P0514R0 Enhancing std::atomic_flag for waiting Olivier Giroux 2016-11-15 2016-11   Concurrency  
P0516R0 Clarify That shared_future's Copy Operations have Wide Contracts Bryce Adelstein Lelbach 2016-11-10 2016-11   Concurrency, Library Evolution, Library  
P0517R0 Make future_error Constructible Bryce Adelstein Lelbach 2016-11-10 2016-11   Concurrency, Library Evolution, Library  
P0519R0 Core Language Working Group "ready" Issues for the November, 2016 (Issaquah) meeting William M. Miller 2016-11-11 2016-11   Core  
P0520R0 Core Language Working Group "tentatively ready" Issues for the November, 2016 (Issaquah) meeting William M. Miller 2016-11-11 2016-11   Core  
P0521R0 Proposed Resolution for CA 14 (shared_ptr use_count/unique) Stephan T. Lavavej 2016-11-11 2016-11   Concurrency, Library Evolution, Library  
P0522R0 DR: Matching of template template-arguments excludes compatible templates James Touton, Hubert Tong 2016-11-11 2016-11   Core  
P0523R0 Wording for CH 10: Complexity of parallel algorithms Detlef Vollmann 2016-11-11 2016-11   Concurrency, Library  
P0528R0 The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange JF Bastien, Michael Spencer 2016-11-12 2016-11   Concurrency, Library Evolution, Library, Core  
P0529R0 Wording changes for proposed Modules TS extensions Richard Smith 2016-11-23 2016-11   Evolution  


C++ 17 Transformation…—phantom

The transformation is only a beginning towards catching up from C++98, but it does show why modern C++ features improve your code.

C++ 17 Transformation...

by phantom

From the article:

I'm basically really bad at working on my own projects, but with the recent release of Visual Studio 2017 RC and its improved C++17 support I figured it was time to crack on again...

To that end I've spent a bit of time today updating my own basic windowing library to use C++17 features. Some of the things have been simple transforms such as converting 'typedef' to 'using', others have been more OCD satisfying...

Basic dependent typing—Krzysztof Ostrowski

Using fundamental types to do "simple things simple" fits very well in the most of cases.

Basic dependent typing

by Krzysztof Ostrowski

From the article:

If we assume that our application uses only a subset of values carried by given fundamental type, we are likely to get warning from the compiler. We shall take that warning seriously. How to inform type system about our assumptions? Example solutions follow.

CppCast Episode 80: Backtrace with Abel Mathew

Episode 80 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Abel Mathew, Co-Founder and CEO of Backtrace I/O, to talk about the debugging platform and its features for C++ developers.

CppCast Episode 80: Backtrace with Abel Mathew

by Rob Irving and Jason Turner

About the interviewee:

Abel Mathew is the co-founder and CEO of Backtrace I/O. Prior to Backtrace, Abel was a Head of Engineering at AppNexus where he led a team of developers to improve ad optimization and reduce platform-wide costs. He spent multiple years as a developer and a team lead on AppNexus’ Adserver Team where he helped design and implement their low-latency advertising platform. Before AppNexus, Abel was a kernel module and tools developer at IBM and a server room monkey at AMD.

C++ User Group Meetings in December

The monthly list of upcoming C++ User Group meetings:

C++ User Group meetings in December

by Jens Weller

From the article:

In total its already 30 groups which are meeting, also there are 10 new groups since the last posting:

Minsk, London, Melbourne, Karlsruhe, Ulm (Qt), San Diego, Belgrade, Luxembourg, Dallas FW, Plano.

How to use PVS-Studio for free

We want to help the software world improve the quality of their code, and get to know static analysis tools better. We are giving the opportunity to use PVS-Studio static code analyzer for free, for educational purposes, so that individual developers and enthusiastic teams could also fully use it.

How to use PVS-Studio for free

by Andrey Karpov

From the article:

Some developers may say that they don't want to see two additional lines of code at the beginning of the file with the comments not related to the project itself. It is their right, and they may simply not use the tool. Or they can purchase a commercial license, and use it without any restrictions. We see these comments as a gratuity for the provided license, and also as an additional way to promote our product. I think it's a good, fair exchange.

The One-Definition Rule—Andrzej KrzemieĹ„ski

Something we should be aware of:

The One-Definition Rule

by Andrzej Krzemieński

From the article:

We have been hit by the same bug twice already this year. It ends in a crash, and it took developers days to find it (in each case), even though it is reproducible on each run of unit tests. The code, after significant simplifications, looks like this:

namespace tests
  struct Fixture
    std::vector<int> v1;
    std::vector<int> v2;

    static Fixture create();

    auto fixture = Fixture::create();
    std::cout << "running test1";