Standardization

SG20 Education and Recommended Videos for Teaching C++ -- Christopher Di Bella

In today’s blog, we look at both the newly minted Study Group for education in the C++ Standard Committee. We also look at a small number of conference videos that I recommend teachers consider while they’re waiting for this Study Group to produce usable materials.

SG20 Education and Recommended Videos for Teaching C++

by Christopher Di Bella

From the article:

As articulated in P1231, the goal of SG20 is not to provide normative curricula for teaching C++, but rather to provide teaching and curriculum guidelines.

...

Below are a list of conference videos that I’ve compiled for teachers to watch (and will update if recommendations come in). There’s well over a day’s worth of videos below, but these aren’t a random assortment of my favourite conference videos. Rather, they are sessions that communicate values about:

  • teaching people how to write programs using C++, or
  • writing C++ programs using approaches the community agrees produce better code.

Trip Report: C++ Standards Meeting in San Diego, November 2018--Botond Ballo

New trip report.

Trip Report: C++ Standards Meeting in San Diego, November 2018

by Botond Ballo

From the article:

A few weeks ago I attended a meeting of the ISO C++ Standards Committee (also known as WG21) in San Diego, California. This was the third committee meeting in 2018; you can find my reports on preceding meetings here (June 2018, Rapperswil) and here (March 2018, Jacksonville), and earlier ones linked from those. These reports, particularly the Rapperswil one, provide useful context for this post...

San Diego Committee Meeting: A Trip Report--Corentin Jabot

Trip report.

San Diego Committee Meeting: A Trip Report

by Corentin Jabot

From the article:

As I left Rapperswil earlier this year, I said very firmly that I would not go to the San Diego Meeting.

Crossing an ocean to work on C++ 12 hours a day for a week is indeed madness.

And so naturally, I found myself in a San Diego hotel straight from the 60s, to do some C++ for a week. With the exception of the author of this blog, all people there are incredibly smart and energetic, and so a lot of great work was done...

Trip Report: Freestanding in San Diego--Ben Craig

One more report.

Trip Report: Freestanding in San Diego

by Ben Craig

From the article:

All three are dealing with "freestanding". I've been working for the last year or so trying to redefine freestanding in a way that would be useful to more people. I have personal experience using C++ in various operating system kernels / drivers, and a bit of experience working on micro controllers and digital signal processors, so that's where my papers focused. At the CppCon 2018 SG14 meeting, some GPU companies have said that my definitions are useful for their architectures (with some tweaks), and I've heard from several other people that my definitions are even useful in some environments where performance and determinism are key, even when there is an OS. I'm still trying to figure out if and how to incorporate all these groups into one thing that could get standardized.

I pitched "Freestanding Proposal" at my first WG21 meeting was November of 2017 in Albuquerque. I was an unknown then. San Diego was my third WG21 meeting. All the papers and interviews and trip reports have now made it where people were asking me about freestanding quite frequently. There were a few times I got stopped while walking around by someone I had never talked to before, and they knew who I was, and asked about freestanding. I found this very flattering. I'm thrilled (and terrified) that my work is getting such visibility...

Trip report: Fall ISO C++ standards meeting (San Diego) -- Herb Sutter

Fresh from last week's standards meeting:

Trip report: Fall ISO C++ standards meeting (San Diego)

by Herb Sutter

From the article:

On Saturday November 10, the ISO C++ committee completed its fall meeting in San Diego, California, USA, hosted with thanks by Qualcomm. This was the biggest ISO C++ meeting in our 29-year history, with some 180 people at the meeting, representing 12 nations...

Because this is one of the last meetings for adding features to C++20, we gave priority to proposals that might make C++20, and we adopted a number of them for C++20...

2018 San Diego ISO C++ Committee Trip Report

The report is here!

2018 San Diego ISO C++ Committee Trip Report

From the article:

The ISO C++ Committee met in San Diego, California ���� last week to continue work on the next International Standard (IS), C++20. This meeting was the last meeting to consider new proposals for C++20, but existing proposals like modules (on track) and coroutines (questions remain) that are in flight but not merged can still make C++20. We’ll make our final decisions about major language features at the next meeting.

Pre-trip report: Fall ISO C++ standards meeting (San Diego) -- Herb Sutter

An update in advance of the meeting that begins later today:

Pre-trip report: Fall ISO C++ standards meeting (San Diego)

by Herb Sutter

From the article:

In one hour, our fall meeting will begin. I’ll still write a trip report at the end with the results of the meeting, but because this is an unusually (and historically) large meeting we’ve had to make a few adjustments...

Five Awesome C++ Papers for San Diego--Bartlomiej Filipek

What do you think?

Five Awesome C++ Papers for San Diego

By Bartlomiej Filipek

From the article:

In two weeks there will be a next C++ Committee meeting. This time the group of C++ experts will travel to San Diego, and they will discuss the shape of the upcoming C++ Standards. As far as I know, the meeting will hold a record in the number of submissions (276 proposals!) So it seems that the session will be quite exhausting smile

Here’s my list of five exciting papers that will be discussed during the meeting. I tried to pick something less popular, and usually smaller than significant features like modules, concepts or ranges...

2018-10 pre-San Diego mailing available (part 2 of 2)

The full 2018-10 mailing of new standards papers is now available.

This post is part 2 of 2.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
P1161R0 Deprecate uses of the comma operator in subscripting expressions Corentin Jabot 2018-10-07 2018-10   Evolution  
P1163R0 Explicitly Implicifying explicit Constructors Nevin Liber 2018-08-31 2018-10   Library  
P1165R0 Fixing allocator usage for operator+(basic_string) Tim Song 2018-10-06 2018-10   Library  
P1167R0 Improving function templates with Class Template Argument Deduction Mike Spertus 2018-10-08 2018-10   Evolution  
P1168R0 How to make Terse Notation soar with Class Template Argument Deduction Mike Spertus 2018-10-08 2018-10   Evolution  
P1169R0 static operator() Barry Revzin 2018-10-07 2018-10   Evolution, Library Evolution  
P1170R0 Overload sets as function parameters Barry Revzin 2018-10-08 2018-10   Evolution, Library Evolution  
P1171R0 Synchronously waiting on asynchronous operations Lewis Baker 2018-10-07 2018-10   SG1, Library Evolution  
P1172R0 The Concept of Memory Allocator Mingxin Wang 2018-10-03 2018-10   Library Evolution, Library  
P1175R0 A simple and practical optional reference for C++ JeanHeyd Meneide 2018-10-06 2018-10   Library Evolution, Library  
P1177R0 Package Ecosystem Plan Rene Rivera 2018-10-06 2018-10   SG15  
P1178R0 C++ Compile Rene Rivera 2018-10-06 2018-10   SG15, Library Evolution  
P1179R0 Lifetime safety: Preventing common dangling Herb Sutter 2018-09-25 2018-10   WG21  
P1180R0 Response to P1156 Richard Smith 2018-09-18 2018-10   Evolution  
P1181R0 Proposing unless Morwenn Ed 2018-09-08 2018-10   Evolution  
P1182R0 New names for the power-of-2 templates (and their header) Gennaro Prot 2018-09-13 2018-10   Library Evolution  
P1184R0 A Module Mapper Nathan Sidwell 2018-10-05 2018-10   SG15  
P1185R0 <=> != == Barry Revzin 2018-10-07 2018-10   Evolution  
P1186R0 When do you actually use <=>? Barry Revzin 2018-10-07 2018-10   Evolution, Library Evolution  
P1187R0 A type trait for std::compare_3way()'s type Barry Revzin 2018-10-07 2018-10   Library Evolution  
P1190R0 I did not order this! Why is it on my bill? David Stone 2018-08-06 2018-10   Evolution, Library Evolution  
P1191R0 Adding operator<=> to types that are not currently comparable David Stone 2018-08-22 2018-10   Library Evolution  
P1192R0 Experience report - integrating Executors with Parallel Algorithms Thomas Rodgers 2018-10-08 2018-10   SG1, Library Evolution  
P1194R0 The Compromise Executors Proposal: A lazy simplification of P0443 Lee Howes, Eric Niebler, Kirk Shoop, Bryce Lelbach, David S. Hollman 2018-10-08 2018-10   SG1, Library Evolution  
P1195R0 Making <system_error> constexpr Peter Dimov 2018-09-27 2018-10   Library Evolution  
P1196R0 Value-based std::error_category comparison Peter Dimov 2018-09-27 2018-10   Library Evolution  
P1197R0 A non-allocating overload of error_category::message() Peter Dimov 2018-09-27 2018-10   Library Evolution  
P1198R0 Adding error_category::failed() Peter Dimov 2018-09-28 2018-10   Library Evolution  
P1199R0 A simple proposal for unifying generic and object-oriented programming Mike Spertus 2018-08-10 2018-10   Evolution  
P1200R0 High noon for the 2D Graphics proposal Guy Davidson, Roger Orr, Ville Voutilainen, Jose Daniel Garcia Sanchez, Jean-Paul Rigault, Matevz Tadel 2018-10-06 2018-10   WG21  
P1201R0 Variant direct comparisons Oleg Fatkhiev, Antony Polukhin 2018-10-02 2018-10   Library Evolution  
P1202R0 Asymmetric fences David Goldblatt 2018-10-06 2018-10   SG1  
P1203R0 Modular main() Boris Kolpackov, Richard Smith 2018-10-05 2018-10   Evolution  
P1204R0 Canonical Project Structure Boris Kolpackov 2018-10-08 2018-10   SG15  
P1205R0 Teleportation via co_await Olivier Giroux, JF Bastien 2018-09-28 2018-10   SG1, Core  
P1206R0 Range constructors for standard containers and views Corentin Jabot, Christopher Di Bella 2018-10-07 2018-10   Library  
P1207R0 Movability of Single-pass Iterators Corentin Jabot 2018-08-20 2018-10   Library Evolution  
P1208R0 Adopt source_location from Library Fundamentals V3 for C++20 Corentin Jabot, Robert Douglas 2018-10-07 2018-10   Library Evolution, Library  
P1209R0 Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20 Alisdair Meredith, Stephan T. Lavavej 2018-10-04 2018-10   Library Evolution  
P1210R0 Completing the Rebase of Library Fundamentals, Version 3, Working Draft Alisdair Meredith 2018-09-30 2018-10   Library Evolution, Library  
P1212R0 Modules and Freestanding Ben Craig 2018-10-06 2018-10   Evolution, Library Evolution  
P1213R0 Global Module Fragment is Unnecessary Nathan Sidwell 2018-10-05 2018-10   Evolution  
P1214R0 Pointer to Member Functions and Member Objects are just Callables! JeanHeyd Meneide 2018-10-06 2018-10   Evolution  
P1217R0 Out-of-thin-air, revisited, again Hans-J. Boehm 2018-10-07 2018-10   SG1  
P1218R0 Redefinitions in Legacy Imports Nathan Sidwell 2018-10-05 2018-10   Evolution  
P1219R0 Homogeneous variadic function parameters James Touton 2018-10-08 2018-10   Evolution  
P1220R0 Controlling When Inline Functions are Emitted Chris Kennelly 2018-09-28 2018-10   Evolution  
P1221R0 Parametric Expressions Jason Rice 2018-10-03 2018-10   Evolution  
P1222R0 A Standard flat_set Zach Laine 2018-10-02 2018-10   Library Evolution  
P1223R0 find_backward Zach Laine 2018-10-02 2018-10   Library Evolution  
P1224R0 C++ Standard Library Issues to be moved in San Diego Marshall Clow 2018-10-08 2018-10   WG21  
P1225R0 Feedback on 2D Graphics JF Bastien 2018-10-02 2018-10   Library Evolution  
P1227R0 Signed size() functions Jorg Brown 2018-10-08 2018-10   Library Evolution  
P1229R0 Labelled Parameters Jorg Brown 2018-10-08 2018-10   Evolution  
P1230R0 Recursive Type Template Instantiation Mingxin Wang 2018-10-03 2018-10   Evolution, Core  
P1231R0 Proposal for Study Group: C++ Education JC van Winkel, Christopher Di Bella 2018-10-08 2018-10   WG21  
P1232R0 Integrating executors with the standard library through customization Lee Howes, Eric Niebler, Kirk Shoop, Lewis Baker, Robert Geva 2018-10-08 2018-10   SG1  
P1233R0 Shift-by-negative in shift_left and shift_right Ashley Hedberg, Matt Calabrese 2018-10-02 2018-10   Library Evolution, Library  
P1235R0 Implicit constexpr Bryce Adelstein Lelbach, Hana Dusíková 2018-10-08 2018-10   Evolution  
P1236R0 Alternative Wording for P0907R4 Signed Integers are Two's Complement Jens Maurer 2018-10-08 2018-10   Core  
P1237R0 SG16: Unicode meeting summaries 2018/07/11 - 2018/10/03 Tom Honermann 2018-10-08 2018-10   SG16  
P1238R0 SG16: Unicode Direction Tom Honermann, Corentin Jabot, JeanHeyd Meneide, Mark Zeren, Martinho Fernandes, Peter Bindels, Steve Downey, Zach Laine 2018-10-08 2018-10   WG21  
P1239R0 Placed Before Daniel Lustig 2018-10-07 2018-10   SG1  
P1240R0 Scalable Reflection in C++ Andrew Sutton, Faisal Vali, Daveed Vandevoorde 2018-10-08 2018-10   SG7, Evolution  
P1241R0 In support of merging coroutines into C++20 Lee Howes, Eric Niebler, Lewis Baker 2018-10-08 2018-10   SG1  
P1242R0 Single-file modules with the Atom semantic properties rule Jeff Snyder 2018-10-08 2018-10   Evolution  
P1243R0 Rangify New Algorithms Dan Raviv 2018-10-07 2018-10   Library Evolution, Library  
P1244R0 Dependent Execution for a Unified Executors Proposal for C++ Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, Carter Edwards, Gordon Brown 2018-10-08 2018-10   SG1, Library Evolution  
P1245R0 export module containing [[attribute]]; Bruno Cardoso Lopes, JF Bastien 2018-10-08 2018-10   Evolution  
P1246R0 The no_float function attribute Bruno Cardoso Lopes, JF Bastien 2018-10-08 2018-10   Evolution  
P1247R0 Disabling static destructors: introducing no_destroy and always_destroy attributes Bruno Cardoso Lopes, JF Bastien, Erik Pilkington 2018-10-08 2018-10   Evolution  
P1248R0 Fixing 'Relation's Tomasz Kamiński 2018-10-07 2018-10   Library Evolution  
P1249R0 std::forward from std::initializer_list Alex Christensen 2018-10-03 2018-10   Library Evolution  
P1250R0 Extension by inspecting members of User Defined Types? Titus Winters, Ashley Hedberg, Eric Fiselier 2018-10-04 2018-10   Library Evolution  
P1251R0 A more constexpr bitset Morris Hafner 2018-10-04 2018-10   Library Evolution  
P1252R0 Ranges Design Cleanup Casey Carter 2018-10-07 2018-10   Library Evolution, Library  
P1254R0 Notes on C++ Package Management Steve Downey 2018-10-07 2018-10   SG15  
P1255R0 A view of 0 or 1 elements: view::maybe Steve Downey 2018-10-07 2018-10   Library Evolution  
P1256R0 Executors Should Go To A TS Detlef Vollmann 2018-10-07 2018-10   SG1, Library Evolution  
P1258R0 Don't Make C++ Unimplementable On Small CPUs Detlef Vollmann 2018-10-08 2018-10   SG1, Library Evolution  
P1259R0 Merge most of Networking TS into C++ Working Draft Detlef Vollmann 2018-10-08 2018-10   SG1, Library Evolution  
P1260R0 Pattern Matching Michael Park 2018-05-22 2018-10   Evolution  
P1261R0 Supporting Pipelines in C++ Michael Wong, Daniel Garcia, Ronan Keryell 2018-10-08 2018-10   SG1, SG14  
P1263R0 Controlling the instantiation of vtables and RTTI Louis Dionne 2018-10-07 2018-10   Evolution  
P1264R0 Revising the wording of stream input operations Louis Dionne 2018-10-07 2018-10   Library  
P1267R0 Custom Constraint Diagnostics Hana Dusíková, Bryce Adelstein Lelbach 2018-10-08 2018-10   Evolution  
P1269R0 Three Years with the Networking TS Jason Carey 2018-10-07 2018-10   Evolution, Library Evolution  
P1271R0 Move resource_adaptor from Library TS to the C++ WP Pablo Halpern 2018-10-05 2018-10   Library Evolution  
P1272R0 Byteswapping for fun&&nuf Isabella Muerte 2018-07-12 2018-10   SG6, SG14, Library Evolution  
P1273R0 86 The Absurd (From Exceptions) Isabella Muerte 2018-10-07 2018-10   Evolution  
P1274R0 Bang For The Buck Isabella Muerte 2018-07-15 2018-10   Evolution  
P1275R0 Desert Sessions: Improving hostile environment interactions Isabella Muerte 2018-10-06 2018-10   SG15, SG16, Library Evolution  
P1276R0 Void Main Isabella Muerte 2018-09-15 2018-10   Evolution  
P1277R0 Subscripts On Parade Isabella Muerte 2018-10-07 2018-10   Evolution  
P1278R0 offsetof For the Modern Era Isabella Muerte 2018-10-06 2018-10   Library Evolution  
P1279R0 std::breakpoint Isabella Muerte 2018-10-05 2018-10   SG14, Library Evolution  
P1280R0 Integer Width Literals Isabella Muerte 2018-10-05 2018-10   Library Evolution  
P1281R0 Feature Presentation Isabella Muerte 2018-10-07 2018-10   SG15  
P1282R0 Ceci N’est Pas Une Pipe: Adding a workflow operator to C++ Isabella Muerte 2018-09-27 2018-10   Evolution  
P1283R0 Sharing is Caring Isabella Muerte 2018-10-06 2018-10   Evolution  
P1284R0 Allowing Inlining of Replaceable Functions Chris Kennelly 2018-10-05 2018-10   Evolution  
P1285R0 Improving Completeness Requirements for Type Traits Walter E. Brown 2018-10-05 2018-10   Library  
P1286R0 Contra CWG DR1778 Richard Smith 2018-10-05 2018-10   Evolution  
P1287R0 Supporting async use-cases for interrupt_token Lewis Baker, Kirk Shoop 2018-10-08 2018-10   SG1, Library Evolution  
P1288R0 Coroutine concepts and metafunctions Lewis Baker 2018-10-07 2018-10   SG1, Library Evolution  
P1289R0 Access control in contract conditions J. Daniel Garcia, Ville Voutilainen 2018-10-08 2018-10   Evolution  
P1291R0 std::ranges::less<> Should Be More! Walter E. Brown 2018-10-07 2018-10   Library Evolution  
P1292R0 Customization Point Functions Matt Calabrese 2018-10-08 2018-10   Evolution  
P1293R0 ostream_joiner Mike Spertus, Nathan Wilson 2018-10-07 2018-10   Library Evolution  
P1294R0 Proposed resolution for US104: Allocator-aware regular expressions (rev 3) Michael Spertus, John Maddock 2018-10-06 2018-10   Library  
P1295R0 Spaceship library update Tomasz Kamiński 2018-10-07 2018-10   Library Evolution  
P1296R0 [[assert: std::disjoint(A,nA, B,nB)]]: Contract assertions as an alternate spelling of ‘restrict’ Phil Miller, Justin Szaday 2018-10-08 2018-10   Evolution  
P1298R0 Reserve more freedom for atomic_ref<> implementers Olivier Giroux 2018-10-08 2018-10   SG1  
P1299R0 Module Preamble is Unnecessary Nathan Sidwell 2018-10-07 2018-10   Evolution  
P1300R0 Remember the FORTRAN Jussi Pakkanen, Isabella Muerte, Peter Bindels 2018-10-08 2018-10   SG15, Evolution  
P1301R0 nodiscard should have a reason JeanHeyd Meneide, Isabella Muerte 2018-10-07 2018-10   Evolution, Library Evolution, Library  
P1302R0 Implicit Module Partition Lookup Isabella Muerte, Richard Smith 2018-10-07 2018-10   Evolution  
P1303R0 Inline Module Partitions Isabella Muerte 2018-10-07 2018-10   Evolution  
P1304R0 Simplifying Extern Template Isabella Muerte 2018-10-07 2018-10   Evolution  
P1305R0 Deprecate The Addressof Operator Isabella Muerte 2018-10-07 2018-10   Evolution  
P1306R0 Expansion statements Andrew Sutton, Sam Goodrick, Daveed Vandevoorde 2018-10-08 2018-10   Evolution  
P1307R0 weak_equality considered harmful Tony Van Eerd 2018-10-08 2018-10   Evolution  
P1308R0 Pattern Matching David Sankel, Dan Sarginson, Sergei Murzin 2018-10-07 2018-10   Evolution  
P1310R0 Unifying the many ways to compare David Stone 2018-10-07 2018-10   Library Evolution  
P1312R0 Comparison Concepts David Stone 2018-09-24 2018-10   Library Evolution  
P1313R0 Let's Talk About Package Specification Matthew Woehlke 2018-10-07 2018-10   SG15  
P1314R0 unique_val: a default-on-move Miguel Ojeda 2018-10-08 2018-10   Library Evolution, Library  
P1315R0 secure_val: a secure-clear-on-move type Miguel Ojeda 2018-10-08 2018-10   Library Evolution, Library  
P1316R0 A when_all() operator for coroutines Lewis Baker 2018-10-08 2018-10   SG1, Library Evolution  
P1317R0 Remove return type deduction in std::apply Aaryaman Sagar 2018-10-07 2018-10   Library Evolution  
P1318R0 Tuple application traits Aaryaman Sagar 2018-10-08 2018-10   Library Evolution  
P1319R0 Changes between C++11 and C++14 Thomas Köppe 2018-10-08 2018-10   WG21  
P1320R0 Allowing contract predicates on non-first declarations Ville Voutilainen 2018-10-03 2018-10   Evolution  
P1321R0 UB in contract violations Ville Voutilainen 2018-10-07 2018-10   SG12, Evolution  
P1322R0 Networking TS enhancement to enable custom I/O executors Christopher Kohlhoff 2018-10-08 2018-10   SG1, Library Evolution  
P1323R0 Contract postconditions and return type deduction Hubert S.K. Tong 2018-10-08 2018-10   Evolution, Core