September 2020

Adding ask me anything to Meeting C++ 2020

Some news about this years Meeting C++ conference: we'll have 2 AMAs!

Adding ask me anything to Meeting C++ 2020

by Jens Weller

From the article:

Some news on Meeting C++ 2020! Attendees will be able to attend AMA sessions with...

During CppCon I noticed how well AMA sessions went and that they are a great feature for an online conference. And for some time I knew that this years conference has some extra space for content due to its online nature.

std::exchange Patterns: Fast, Safe, Expressive, and Probably Underused--Ben Deane

Do you know about it?

std::exchange Patterns: Fast, Safe, Expressive, and Probably Underused

by Ben Deane

From the article:

This blog post has been a long time in the making. I gave a lightning talk on std::exchange at CppCon 2017; Jonathan first asked me to write something about std::exchange in January 2019; now here we are in the strange days of the second half of 2020. But although much has changed in the outside world, I would guess that not much has changed in most C++ codebases and in the minds of many C++ programmers with respect to using std::exchange. It could still do with more publicity and more recognition of potential use cases...

New C++ features in GCC 10--Marek Polacek

Compiler improving.

New C++ features in GCC 10

by Marek Polacek

From the article:

The GNU Compiler Collection (GCC) 10.1 was released in May 2020. Like every other GCC release, this version brought many additions, improvements, bug fixes, and new features. Fedora 32 already ships GCC 10 as the system compiler, but it’s also possible to try GCC 10 on other platforms (see, for example). Red Hat Enterprise Linux (RHEL) users will get GCC 10 in the Red Hat Developer Toolset (RHEL 7), or the Red Hat GCC Toolset (RHEL 8).

This article focuses on the part of the GCC compiler on which I spend most of my time: The C++ front end. My goal is to present new features that might be of interest to C++ application programmers. Note that I do not discuss developments in the C++ language itself, although some language updates overlap with compiler updates. I also do not discuss changes in the standard C++ library that comes with GCC 10.

We implemented many C++20 proposals in GCC 10. For the sake of brevity, I won’t describe them in great detail. The default dialect in GCC 10 is -std=gnu++14; to enable C++20 features, use the -std=c++20 or -std=gnu++20 command-line option. (Note that the latter option allows GNU extensions.)...

CLion 2020.3 EAP: CTest, Set Execution Point in Debug, Qt project templates...--Anastasia Kazakova

Tools improving.

CLion 2020.3 EAP: CTest, Set Execution Point in Debug, Qt project templates, and MISRA Checks

by Anastasia Kazakova

From the article:

There are many useful changes and improvements planned for CLion 2020.3, and today we are ready to share some of them with you. CLion officially starts the 2020.3 Early Access Program today!

For those who just joined us, EAP builds are free and valid for 1 month, so you don’t need an active subscription to try them out. However, the quality of EAP builds is usually lower than that of releases. If you are wondering why taking part in an EAP is worth your while, please see this nice explanation by the WebStorm team...

2020-09 mailing available

The 2020-09 mailing of new standards papers is now available.


WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P0288R5 any_invocable Ryan McDougall, Matt Calabrese 2020-09-03 2020-09 P0288R4 LWG Library
P0443R14 A Unified Executors Proposal for C++ Jared Hoberock 2020-09-22 2020-09 P0443R13 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0881R7 A Proposal to add stacktrace library Antony Polukhin 2020-09-16 2020-09 P0881R6 LWG Library
P0958R2 Networking TS changes to support proposed Executors TS Christopher Kohlhoff 2020-09-22 2020-09 P0958R1 SG4 Networking
P1322R2 Networking TS enhancement to enable custom I/O executors Christopher Kohlhoff 2020-09-22 2020-09 P1322R1 SG1 Concurrency and Parallelism,SG4 Networking,LEWG Library Evolution
P1371R3 Pattern Matching Michael Park 2020-09-15 2020-09 P1371R2 EWG Evolution
P1701R1 Inline Namespaces: Fragility Bites Nathan Sidwell 2020-09-13 2020-09 P1701R0 EWG Evolution
P1885R3 Naming Text Encodings to Demystify Them Corentin Jabot 2020-09-14 2020-09 P1885R2 SG16 Unicode,LEWG Library Evolution
P1949R6 C++ Identifier Syntax using Unicode Standard Annex 31 Steve Downey 2020-09-15 2020-09 P1949R5 EWG Evolution,CWG Core
P2013R3 Freestanding Language: Optional ::operator new Ben Craig 2020-09-13 2020-09 P2013R2 EWG Evolution
P2029R3 Proposed resolution for core issues 411, 1656, and 2333; escapes in character and string literals Tom Honermann 2020-09-11 2020-09 P2029R2 CWG Core
P2066R3 Suggested draft TS for C++ Extensions for Transaction Memory Light Jens Maurer 2020-09-15 2020-09 P2066R2 SG1 Concurrency and Parallelism,EWG Evolution,LEWG Library Evolution
P2077R1 Heterogeneous erasure overloads for associative containers Konstantin Boyarinov 2020-09-15 2020-09 P2077R0 LEWG Library Evolution
P2138R3 Rules of Design<=>Specification engagement Ville Voutilainen 2020-09-15 2020-09 P2138R2 EWG Evolution,LEWG Library Evolution
P2145R1 Evolving C++ Remotely Bryce Adelstein Lelbach 2020-09-15 2020-09 P2145R0 All of WG21
P2164R2 views::enumerate Corentin Jabot 2020-09-13 2020-09 P2164R1 LEWG Library Evolution
P2166R1 A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr Yuriy Chernyshov 2020-09-07 2020-09 P2166R0 LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library
P2169R2 A Nice Placeholder With No Name Corentin Jabot 2020-09-13 2020-09 P2169R1 EWG Evolution
P2192R2 std::valstat -Transparent Returns Handling Dusan B. Jovanovic 2020-09-14 2020-09 P2192R1 LEWGI SG18: LEWG Incubator
P2194R0 The character set of the internal representation should be Unicode Corentin Jabot 2020-08-24 2020-09   SG16 Unicode,EWG Evolution,CWG Core
P2195R0 Electronic Straw Polls Bryce Adelstein Lelbach 2020-09-15 2020-09   All of WG21
P2206R0 Executors Thread Pool review report Ruslan Arutyunyan 2020-09-02 2020-09   LEWG Library Evolution
P2212R1 Relax Requirements for time_point::clock Alexey Dmitriev 2020-09-14 2020-09 P2212R0 LEWGI SG18: LEWG Incubator
P2215R1 "Undefined behavior" and the concurrency memory model Hans Boehm 2020-09-14 2020-09 P2215R0 SG1 Concurrency and Parallelism,SG12 Undefined and Unspecified Behavior
P2216R0 std::format improvements Victor Zverovich 2020-09-06 2020-09   LEWG Library Evolution
P2217R0 SG16: Unicode meeting summaries 2020-06-10 through 2020-08-26 Tom Honermann 2020-08-29 2020-09   SG16 Unicode
P2218R0 More flexible optional::value_or() Marc Mutz 2020-09-15 2020-09   LEWGI SG18: LEWG Incubator
P2219R0 P0443 Executors Issues Needing Resolution Jared Hoberock 2020-09-10 2020-09   SG1 Concurrency and Parallelism
P2220R0 redefine properties in P0443 Kirk Shoop 2020-09-14 2020-09   LEWG Library Evolution
P2221R0 define P0443 cpos with tag_invoke Kirk Shoop 2020-09-14 2020-09   LEWG Library Evolution
P2223R0 Trimming whitespaces before line splicing Corentin Jabot 2020-09-13 2020-09   EWG Evolution,CWG Core
P2224R0 A Better bulk_schedule Michael Garland 2020-09-14 2020-09   SG1 Concurrency and Parallelism

CppCon 2020 Trip Report--Conor Hoekstra

And another.

CppCon 2020 Trip Report

by Conor Hoekstra

From the article:

This was my second time attending CppCon. The first time I attended was in 2019, when I gave my first CppCon presentation in two parts, Algorithm Intuition - although I personally recommend the C++Now 2019 version which is 30 minutes shorter.

CppCon 2020 Trip Report--Shafik Yaghmour

And another.

CppCon 2020 Trip Report

by Shafik Yaghmour

From the article:

CppCon 2020 was online this year due to Covid-19. I was not sure what to expect from an online only conference. I had heard mildly positive feedback from recent online only conferences but this would be my first experience. For the most part the experience exceeded my expectations. There were were technical problems here and there but mostly it ran smoothly. It was fatiguing to watching videos for so long but since I was home I was able to stretch in between sessions and move around and that usually helped...

CopperSpice: Qualifiers

New video on the CopperSpice YouTube Channel:


by Barbara Geller and Ansel Sermersheim

About the video:

In this video we explore the many different kinds of qualifiers available in C++ and explore how they interact. We also cover why you would want to qualify your methods, and a surprising corner case in the way assignment is defined which can lead to very subtle bugs.

Please take a look and remember to subscribe!