Standardization

N4666: National Body Comments: ISO/IEC PDTS 22277, C++ Extensions for Coroutines -- Barry Hedquist

A new WG21 paper is available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N4666

Date: 2017-06-05

National Body Comments: ISO/IEC PDTS 22277, C++ Extensions for Coroutines

by Barry Hedquist

Excerpt:

Attached is SC22 N5205, a complete set of National Body Comments submitted to JTC1 SC22 in response to the SC22 N5193, Ballot for ISO/IEC PDTS 22277, C++ Extensions for Coroutines.

These comments are to be addressed at the next WG21 meeting in Toronto, July 10 - 15, 2017.

Document numbers referenced in the ballot comments are WG21 documents unless otherwise stated.

C++17 in details: fixes and deprecation

C++17 brings some language fixes and deprecation. See what have changed.

C++17 in details: fixes and deprecation

by Bartlomiej Filipek

From the article:

The draft for the language contains now over 1586 pages! Due to compatibility requirements, the new features are added, but not much is removed. Fortunately, there are some things that could go away.

P0636R0: Changes between C++14 and C++17 DIS -- Thomas Köppe

[Thank you to Thomas for taking the time to research and compile a quite comprehensive list of what's new in C++17! -- Ed.]

A new WG21 paper is available. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: P0636R0

Date: 2017-04-02

Changes between C++14 and C++17 DIS

by Thomas Köppe

Excerpt:

This document enumerates all the major changes that have been applied to the C++ working draft since the publication of C++14, up to the publication of the C++17 DIS (N4660). Major changes are those that were added in the form of a dedicated paper, excluding those papers that are large issue resolutions. No issue resolutions from either CWG or LWG issues lists (“defect reports”) are included.

Trip report: Winter ISO C++ standards meeting (Kona) -- Botond Ballo

waldo.PNGA new trip report from the just-concluded ISO C++ meeting:

Trip report: C++ standards meeting in Kona, February 2017

by Botond Ballo

From the article:

Conclusion

C++17 is effectively out the door, with its Draft International Standard sent out for ballot, and the official release expected later this year.

Development on C++20 is well under way, with numerous core language and library features already earmarked for it, and several Technical Specifications expected to be merged into it. A proposal for an overall vision for the release aims to focus the committee’s efforts on four headliner features – Concepts, Modules, Ranges, and Networking. That is, of course, not a guarantee these features will be in C++20 (nor is it intended to exclude other features!), but I believe with some luck and continued hard work we can make part of all of that plan a reality.

Modules, in particular, are expected to be a game-changer for C++...

Trip report: Winter ISO C++ standards meeting (Kona) -- Herb Sutter

A trip report from the just-concluded ISO C++ meeting:

Trip report: Winter ISO C++ standards meeting (Kona), C++17 is complete

by Herb Sutter

From the article:

C++17 is done!

The big news is that we completed C++17, which dominated the work of the meeting: C++17 is now technically finished and being sent out for its final ISO balloting. All that remains for C++17 now is some ISO red tape and minor touch-up to get it officially published, which is expected to be just mechanical...

2017-03 post-Kona mailing available

The full 2017-03 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
SD-1 2017 PL22.16/WG21 document list John Spicer 2017-02-08 2017-02      
2017-03 post-Kona
N4643 National Body Comments for PDTS 19216, C++ Extensions for Networking Barry Hedquist 2017-02-17 2017-03   WG21  
N4644 National Body Comments for PDTS 21425, C++ Extensions for Ranges Barry Hedquist 2017-02-17 2017-03   WG21  
N4645 WG21 Telecon Minutes Jonathan Wakely 2017-02-21 2017-03   WG21  
N4646 Withdrawn     2017-03   WG21  
N4647 Working Draft, Extensions to C++ for Modules Gabriel Dos Reis 2017-03-19 2017-03 N4637 WG21  
N4648 Editor's Report for the Module TS Gabriel Dos Reis 2017-03-20 2017-03   WG21  
N4649 Working Draft, Technical Specification on C++ Extensions for Coroutines Gor Nishanov 2017-03-03 2017-03 N4628 WG21  
N4650 Editor's report for the Coroutines TS Gor Nishanov 2017-03-02 2017-03   WG21  
N4651 Working Draft, C++ Extensions for Ranges Eric Niebler, Casey Carter 2017-03-15 2017-03   WG21  
N4652 Editor's Report for the Ranges TS Casey Carter 2017-03-15 2017-03   WG21  
N4653 2017-02 Kona Record of Discussion ISO/IEC Jonathan Wakely 2017-03-14 2017-03   WG21  
N4654 WG21 2017-02 Kona Minutes Jonathan Wakely 2017-03-14 2017-03   WG21  
N4655 PL22.16 2017-02 Kona Minutes Jonathan Wakely 2017-03-14 2017-03   WG21  
N4656 Working Draft, C++ Extensions for Networking Jonathan Wakely 2017-03-17 2017-03 N4626 WG21  
N4657 Networking TS - Editor's Report Jonathan Wakely 2017-03-17 2017-03   WG21  
N4658 Alternative accommodation (student residence) for the 2017-07 Toronto WG21 Meeting Botond Ballo 2017-03-17 2017-03   WG21  
N4659 Working Draft, Standard for Programming Language C++ Note: Richard Smith 2017-03-21 2017-03 N4640 WG21  
N4660 C++17 DIS Ballot Document Richard Smith 2017-03-21 2017-03   WG21  
N4661 Editor's Report -- Working Draft, Standard for Programming Language C++ Richard Smith 2017-03-21 2017-03   WG21  
P0019R5 Atomic View H. Carter Edwards, Hans Boehm, Olivier Giroux, James Reus 2017-03-06 2017-03 P0019R4 Library Evolution  
P0020R5 Floating Point Atomic H. Carter Edwards, Hans Boehm, Olivier Giroux, JF Bastien, James Reus 2017-03-06 2017-03 P0020R4 Library Evolution  
P0156R2 Variadic lock_guard (Rev. 4) Mike Spertus 2017-03-03 2017-03 P0156R1 Library Adopted 2017-03
P0237r6 Wording for fundamental bit manipulation utilities Vincent Reverdy, Robert J. Brunner 2017-03-20 2017-03 P0237R5 Library Evolution, SG14, Numerics  
P0250R3 Wording improvements for initialization and thread ids (CWG 2046, 1784) Hans Boehm 2017-03-02 2017-03 P0250R2 Core Adopted 2017-03
P0261R3 C++ Distributed Counters Lawrence Crowl 2017-03-13 2017-03 P0261R2 Concurrency  
P0267R4 A Proposal to Add 2D Graphics Rendering and Display to C++, Michael McLaughlin, Herb Sutter, Jason Zink 2017-03-20 2017-03 P0267R3 Library Evolution  
P0270R3 Removing C dependencies from signal handler wording Hans Boehm 2017-02-02 2017-03 P0270R2 Core, Library Adopted 2017-03
P0290R2 apply() for synchronized_value<T> Anthony Williams 2017-03-02 2017-03 P0290R1 Concurrency  
P0298R3 A byte type definition Neil MacIntosh 2017-03-03 2017-03 P0298R2 Library Evolution Adopted 2017-03
P0409R2 Allow lambda capture [=, this] Thomas Koeppe 2017-03-04 2017-03 P0409R1 Core  
P0430R2 File system library on non-POSIX-like operating systems Jason Liu, Hubert Tong 2017-02-28 2017-03 P0430R1 Library, Library Evolution Adopted 2017-03
P0433R2 Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library Mike Spertus, Walter E. Brown, Stephan T. Lavavej 2017-03-03 2017-03 P0433R1 Library Evolution, Library Adopted 2017-03
P0447R2 Introduction of std::colony to the standard library Patrice Roy, Guy Davidson, Matthew Bentley 2017-02-11 2017-03 P0447R1 Library Evolution, SG14  
P0452R1 Unifying <numeric> Parallel Algorithms Bryce Adelstein Lelbach 2017-03-01 2017-03 P0452R0 Concurrency, Library Evolution, Library Adopted 2017-03
P0464R2 Revisiting the meaning of "foo(ConceptName,ConceptName)" Tony Van Eerd, Botond Ballo 2017-03-12 2017-03 P0464R1 Evolution  
P0467R2 Iterator Concerns for Parallel Algorithms Alisdair Meredith 2017-03-02 2017-03 P0467R1 Concurrency, Library Adopted 2017-03
P0492R2 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 2017-03-03 2017-03 P0492R1 Library Adopted 2017-03
P0501R1 C++ Module TS Issues List Gabriel Dos Reis 2017-03-19 2017-03 P0501R0 Core, Evolution  
P0511R1 Deduction guide for std::array Zhihao Yuan 2017-02-24 2017-03 P0511R0 Library Evolution  
P0518R1 Allowing copies as arguments to function objects given to parallel algorithms in response to CH11 David S. Hollman, Jonathan Liffander, Michael Wong, Detlef Vollmann 2017-03-01 2017-03 P0518R0 Library Evolution Adopted 2017-03
P0523R1 Wording for CH 10: Complexity of parallel algorithms Detlef Vollmann 2017-03-01 2017-03 P0523R0 Concurrency, Library Adopted 2017-03
P0548R1 common_type and duration Walter E. Brown 2017-03-03 2017-03 P0548R0 Library Adopted 2017-03
P0553R1 Bit Operations Jens Maurer 2017-03-19 2017-03 P0553R0 Library Evolution  
P0556R1 Integral power-of-2 operations Jens Maurer 2017-03-19 2017-03 P0556R0 Library Evolution  
P0558R1 Resolving atomic<T> named base class inconsistencies Billy O'Neal 2017-03-03 2017-03 P0558R0 Concurrency, Library Adopted 2017-03
P0574R1 Algorithm Complexity Constraints and Parallel Overloads Anthony Williams 2017-03-02 2017-03 P0574R0 Concurrency, Library Adopted 2017-03
P0575R1 Core Language Working Group "ready" Issues for the February, 2016 (Kona) meeting William M. Miller 2017-03-03 2017-03 P0575R0 Core Adopted 2017-03
P0575R2 Core Language Working Group "ready" Issues for the February, 2016 (Kona) meeting William M. Miller 2017-03-03 2017-03 P0575R1 Core  
P0576R1 Core Language Working Group "tentatively ready" Issues for the February, 2016 (Kona) meeting William M. Miller 2017-03-03 2017-03 P0576R0 Core Adopted 2017-03
P0582R0 Modules: Contexts of template instantiations and name lookup Gabriel Dos Reis 2017-03-02 2017-03   Core, Evolution Adopted 2017-03
P0591R1 Utility functions to implement uses-allocator construction Pablo Halpern 2017-03-09 2017-03 P0591R0 Library Evolution  
P0599R1 US140: noxecept for hash functions Nicolai Josutti 2017-03-02 2017-03 P0599R0 Library Adopted 2017-03
P0602R0 variant and optional should propagate copy/move triviality Zhihao Yuan 2017-02-04 2017-03   Library Evolution  
P0603R0 safe memcpy: A simpler implementation primitive for seqlock and friends Andrew Hunter 2017-03-17 2017-03   Concurrency  
P0604R0 Resolving GB 55, US 84, US 85, US 86 Daniel Krugler, Pablo Halpern, Jonathan Wakely 2017-03-03 2017-03   Library Evolution, Library Adopted 2017-03
P0606R0 Concepts Are Ready Gabriel Dos Reis 2017-02-25 2017-03   Evolution  
P0607R0 Inline Variables for the Standard Library Daniel Krugler 2017-02-27 2017-03   Library Evolution, Library Adopted 2017-03
P0608R0 A sane variant converting constructor (LEWG 227) Zhihao Yuan 2017-03-02 2017-03   Library Evolution, Library  
P0609R0 Attributes for Structured Bindings Aaron Ballman 2017-03-04 2017-03   Evolution  
P0610R0 C++ Standard Library "Review" Issues Resolved in Kona Marshal Clow 2017-03-04 2017-03   Library Adopted 2017-03
P0611R0 More Better Operators Lawrence Crowl 2017-03-18 2017-03   Evolution  
P0612R0 NB comment CH 2: volatile Jens Maurer 2017-02-27 2017-03   WG21 Adopted 2017-03
P0613R0 NB comment GB15: Resolution of Core Issue 2011 William M. Miller 2017-02-27 2017-03   WG21 Adopted 2017-03
P0614R0 Range-based for statements with initializer Thomas Köppe 2017-03-18 2017-03   Evolution, Core  
P0615R0 Renaming for structured bindings Jens Maurer 2017-03-01 2017-03   WG21 Adopted 2017-03
P0618R0 Deprecating <codecvt> Alisdair Meredith 2017-03-02 2017-03   Library Adopted 2017-03
P0619R0 Reviewing Deprecated Facilities of C++17 for C++20 Alisdair Meredith, Stephan T. Lavavej, Tomasz Kamiński 2017-03-17 2017-03   Evolution  
P0620R0 Drafting for class template argument deduction issues Jason Merrill 2017-03-02 2017-03   Core Adopted 2017-03
P0621R0 Ready Ranges TS Issues Casey Carter 2017-03-02 2017-03   Library  
P0622R0 Additional Core Language Working Group "ready" and "tentatively ready" Issues for the February, 2017 (Kona) meeting William M. Miller 2017-03-03 2017-03   Core Adopted 2017-03
P0623R0 Final C++17 Parallel Algorithms Fixes Bryce Adelstein Lelbach, Alisdair Meredith, Anthony Williams 2017-03-03 2017-03   Concurrency, Library Evolution, Library Adopted 2017-03
P0624R0 Default constructible stateless lambdas Louis Dionne 2017-03-20 2017-03   Evolution  
P0625R0 C++ Standard Library Issues Resolved Directly In Kona Marshal Clow 2017-03-03 2017-03   Library  
P0627R0 Attribute to mark unreachable code Melissa Mears 2017-03-14 2017-03   Evolution  
P0629R0 Module interface vs. imiplementation Gabriel Dos Reis, Jason Merrill, Nathan Sidwell 2017-03-17 2017-03   Evolution  
P0630R0 To boldly suggest a pub crawl for C++ Toronto Duncan P.N. Exon Smith 2017-03-19 2017-03   WG21  
P0631R0 Math Constants Lev Minkovsky 2017-03-19 2017-03   Library Evolution, Numerics  
P0632R0 Proposal of [[uninitialized]] attribute Jonathan Müller 2017-01-19 2017-03   Evolution  
P0633R0 Exploring the design space of metaprogramming and reflection Daveed Vandevoorde, Louis Dionne 2017-03-20 2017-03   Reflection  
P0634R0 Down with `typename`! Daveed Vandevoorde 2017-03-05 2017-03   Evolution  

 

C++::London talk: A polymorphic value-type for C++

On 25th January at CodeNode, London, Jonathan Coe presented polymorphic_value<T> to the C++::London meetup group.

The class template polymorphic_value is proposed for addition to the C++ Standard Library. The class template, polymorphic_value, confers value-like semantics on a free-store allocated object. A polymorphic_value<T> may hold an object of a class publicly derived from T, and copying the polymorphic_value will copy the object of the derived type.

A polymorphic value-type for C++ (Video)

About the presenter:

Jonathan is a mathematical developer using modern C++ and Python. He has worked in academia and the financial and energy industries. He's been a participant in the C++ standards committee since 2014.