An overview on C++17 and beyond papers

published at 01.10.2015 21:10 by Jens Weller

I used to do overviews on all papers for a meeting, and when I find the time, I will do this for upcoming meetings again. I will try to post a best-of later, with all the good stuff on concepts, modules and more later. Currently I'm to busy, I just got back from CppCon, and will go to the Qt World Summit next week (meet me there!).

So, in the mean time you can take take a look for yourself, as what follows is the list off all papers submitted this year, sorted by mailings and then subgroups. My awesome paper crawler tool did finally its job correct, so I hope everything works correctly:

mailing2015-02 | mailing2015-04 | mailing2015-05 | mailing2015-09

mailing2015-02

- Concurrency -- Evolution -- Library -- Library evolution-

N4349 - Minutes of WG21 Telecon - Jonathan Wakely

Concurrency

Evolution

N4340 - Remove Deprecated Use of the register Keyword - Alisdair Meredith

N4356 - Relaxed Array Type Declarator - Carter Edwards

N4358 - Unary Folds and Empty Parameter Packs - Thibaut Le Jehan

N4360 - Delayed Evaluation Parameters - Douglas Boffey

N4378 - Language Support for Contract Assertions - John Lakos, Nathan Myers, Alexei Zakharov, Alexander Beels

N4379 - FAQ about N4378, Language Support for Contract Assertions - John Lakos, Nathan Myers

Library

N4355 - Shared Multidimensional Arrays with Polymorphic Layout - Carter Edwards

N4380 - Constant View: A proposal for a std::as_const helper function template - ADAM David Alan Martin, Alisdair Meredith

Library evolution

mailing2015-04

- Concurrency -- Concurrency/Library -- Core -- Evolution -- Feature Testing -- I/O -- Library -- Library Evolution -- Library Evolution, Concurrency -- Library Evoution -- Reflection -- Transactional Memory-

N4394 - Agenda for Lenexa Meeting - Clark Nelson

Concurrency

N4398 - A unified syntax for stackless and stackful coroutines - Oliver Kowalke

N4406 - Integrating Executors with Parallel Algorithm Execution - Jared Hoberock, Michael Garland, Oliver Giroux

N4445 - Overly attached promise - Agustín Bergé, Hartmut Kaiser

N4455 - No Sane Compiler Would Optimize Atomics - JF Bastien

N4482 - Some notes on executors and the Networking Library Proposal - Christopher Kohlhoff

Concurrency/Library

Core

Evolution

N4393 - Noop Constructors and Destructors - Pablo Halpern

N4401 - Defaulted comparison operator semantics should be uniform - Michael Price

N4404 - Extension to aggregate initialization - Oleg Smolsky

N4415 - Simple Contracts for C++ - Gabriel Dos Reis, J. Daniel Garcia, Francesco Logozzo, Manuel Fahndrich, Shuvendu Lahri

N4424 - Inline Variables - Hal Finkel, Richard Smith

N4425 - Generalized Dynamic Assumptions - Hal Finkel

N4434 - Tweaks to Streamline Concepts Lite Syntax - Walter Brown

N4435 - Proposing Contract Attributes - Walter Brown

N4453 - Resumable Expressions - Christopher Kohlhoff

N4461 - Static if resurrected - Ville Voutilainen

N4465 - A Module System for C++ (Revision 3) - Gabriel Dos Reis, Mark Hall, Gor Nishanov

N4466 - Wording for Modules - Gabriel Dos Reis

N4472 - consexpr goto - Ville Voutilainen

Feature Testing

I/O

N4463 - IO device requirements for C++ - Cleiton Santoia Silva, Daniel Auresco

Library

N4381 - Suggested Design for Customization Points - Eric Niebler

N4412 - Shortcomings of iostreams - Jens Maurer

Library Evolution

N4446 - The missing INVOKE related trait - Agustín Bergé

N4468 - On Quantifying Memory-Allocation Strategies - John Lakos, Jeffrey Mendelsohn, Alisdair Meredith, Nathan Myers

Library Evolution, Concurrency

N4411 - Task Block (formerly Task Region) R4 - Pablo Halpern, Arch Robison, Hong Hong, Artur Laksberg, Gor Nishanov, Herb Sutter

Library Evoution

N4479 - Merge Fundamentals V1 into v2 - Jeffrey Yasskin

Reflection

N4418 - Parameter Stringization - Robert Douglas

N4420 - Defining Test Code - Robert Douglas

Transactional Memory

N4410 - Responses to PDTS comments on Transactional Memory - Jens Maurer

mailing2015-05

- Concurrency -- Core -- Evolution -- Feature Testing -- Library -- Library Evolution -- SG14-

Concurrency

N4509 - constexpr atomic::is_always_lock_free - Olivier Giroux, JF Bastien, Jeff Snyder

N4523 - constexpr std::thread::hardware_{true,false}_sharing_size - Olivier Giroux, JF Bastien

Core

Evolution

N4487 - Constexpr lambdas - Faisal Vali, Ville Voutilainen

N4495 - Operator dot - Mathias Gaunard, Dietmar Kühl

N4532 - Proposed wording for default comparisons - Jens Maurer

Feature Testing

Library

Library Evolution

N4536 - An algorithm to "clamp" a value between a pair of boundary values - Martin Moene, Niels Dekker

N4543 - A polymorphic wrapper for all Callable objects - David Krauss

SG14

mailing2015-09

- Concepts -- Concurrency -- Core -- Core, Library Evolution -- Evolution -- Evolution, Library Evolution -- Feature Testing -- File System -- Library -- Library Evolution -- Library Evolution, SG14 -- Numerics -- SG14 -- SG14, Library Evolution -- Transactional Memory-

N4546 - Agenda and Meeting Notice for WG21 Concepts Telecon - Herb Sutter

Concepts

Concurrency

P0019R0 - Atomic View - H. Carter Edwards, Hans Boehm, Olivier Giroux, James Reus

P0020R0 - Floating Point Atomic View - H. Carter Edwards, Hans Boehm, Olivier Giroux, JF Bastien, James Reus

P0024R0 - The Parallelism TS Should be Standardized - Jared Hoberock

P0058R0 - An Interface for Abstracting Execution - Jared Hoberock, Michael Garland, Olivier Girioux

P0062R0 - When should compilers optimize atomics? - Hans Boehm, JF Bastien, Peter Dimov, Hal Finkel, Paul McKenney, Michael Wong, Jeffrey Yasskin

P0063R0 - C++17 should refer to C11 instead of C99 - Hans Boehm, Clark Nelson

P0069R0 - A C++ Compiler for Heterogeneous Computing - Ben Sander, Greg Stoner, Siu-chi Chan, Wen-Heng (Jack) Chung

P0097R0 - Use Cases for Thread-Local Storage - Paul E. McKenney, JF Bastien, Pablo Halpern, Michael Wong, Thomas Richard William Scogland, Robert Geva - Previous Paper: N4376

Core

P0001R0 - Removing Deprecated Register Keyword - Alisdair Meredith

Core, Library Evolution

Evolution

P0003R0 - Removing Deprecated Dynamic Exception Specifications - Alisdair Meredith

P0018R0 - Lambda Capture of *this by Value - H. Carter Edwards, Christian Trott, Hal Finkel, Jim Reus, Robin Maffeo, Ben Sander

P0027R0 - Named Types - Troy Korjuslommi

P0028R0 - Using non-standard attributes - J. Daniel Garcia, Luis M. Sanchez, Massimo Torquati, Marco Danelutto, Peter Sommerlad

P0056R0 - Soft Keywords - Gor Nishanov

P0060R0 - Function Object-Based Overloading of Operator Dot - Mathias Gaunard, Dietmar Kühl

P0073R0 - On unifying the coroutines and resumable functions proposals - Torvald Riegel

P0086R0 - Variant design review - Axel Naumann

P0119R0 - Overload sets as function arguments - Andrew Sutton

P0120R0 - constexpr unions and common initial sequences - Anthony Williams

P0131R0 - Unified call syntax concerns - Bjarne Stroustrup

P0135R0 - Guaranteed copy elision through simplified value categories - Richard Smith

Evolution, Library Evolution

Feature Testing

File System

P0011R0 - Additions to Filesystem supporting Relative Paths - Jamie Alsop, Nicolai Josuttis

Library

P0067R0 - Elementary string conversions - Jens Maurer

P0075R0 - Template Library for Index-Based Loops - Arch Robison, Pablo Halpern, Robert Geva, Clark Nelson

P0076R0 - Vector and Wavefront Policies - Arch Robison, Pablo Halpern, Robert Geva, Clark Nelson

Library Evolution

P0004R0 - Removing Deprecated Aliases in iostreams - Alisdair Meredith

P0009R0 - Polymorphic Multidimensional Array View - H. Carter Edwards, Christian Trott, Juan Alday, Jesse Perla, Mauro Bianco, Robin Maffeo, Ben Sander, Bryce Lelbach

P0013R0 - Logical Operator Type Traits - Jonathan Wakely

P0022R0 - Proxy Iterators for the Ranges Extensions - Eric Niebler

P0029R0 - A Unified Proposal for Composable Hashing - Geoff Romer, Chandler Carruth

P0032R0 - Homogeneous interface for variant, any and optional - Vicente J. Botet Escriba

P0034R0 - Civil Time for the Standard Library - Bill Seymour

P0043R0 - Function wrappers with allocators and noexcept - David Krauss

P0050R0 - C++ generic match function - Vicente J. Botet Escriba

P0051R0 - C++ generic overload function - Vicente J. Botet Escriba

P0055R0 - On Interactions Between Coroutines and Networking Library - Gor Nishanov

P0084R0 - Emplace Return Type - Alan Talbot

P0092R0 - Polishing - Howard Hinnant

P0093R0 - Simply a strong variant - David Sankel

P0094R0 - Simply a basic variant - David Sankel

P0095R0 - The case for a language based variant - David Sankel

P0116R0 - Boolean conversion for Standard Library types - Robert Kawulak

Library Evolution, SG14

P0037R0 - Fixed point real numbers - John McFarlane

P0038R0 - Flat Containers - Sean Middleditch

P0040R0 - Extending memory management tools - Brent Friedman

P0041R0 - Unstable remove algorithms - Brent Friedman

Numerics

P0081R0 - A proposal to add sincos to the standard library - Paul Dreik

SG14

P0130R0 - Comparing virtual functions - Scott Wardle, Roberto Parolin

SG14, Library Evolution

P0059R0 - Add rings to the Standard Library - Guy Davidson

Transactional Memory

Join the Meeting C++ patreon community!

This and other posts on Meeting C++ are enabled by my supporters on patreon!