June 2021

CppCon 2021 opening keynote: Bjarne Stroustrup

bjarne-s-300x271.jpgWill you be there? Early Bird registration is open to attend in person to be in the room for this keynote, to attend online, or do both...

Opening Keynote: Bjarne Stroustrup, live in person

From the article:

CppCon 2021 will kick off on Monday, October 25 with Bjarne Stroustrup delivering the opening keynote live in person in Aurora, Colorado, USA. This is Stroustrup’s first in-person talk in North America since C++20 was completed, just before the pandemic lockdowns began. His talk connects C++’s roots with all the things that make C++20 a historic milestone – it’s not only the biggest release of C++ in a decade, but also the first edition of Standard C++ ever that is “D&E-complete,” containing all of the features (except only unified function call syntax) that Stroustrup described a quarter-century ago in The Design and Evolution of C++ as his goals for C++’s future development, including concepts, coroutines, and modules which in 2021 are for the first time now available as actual realities in production C++ compilers.

CppCon 2021 is proud to be the forum for Dr. Stroustrup’s landmark talk, which he describes as follows: ...

2021-06 Mailing Available

The 2021-06 mailing of new standards papers is now available.


WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4887 PL22.16/WG21 agenda: 7 June 2021, Virtual Meeting John Spicer 2021-05-21 2021-06   All of WG21
N4888 WG21 virtual meetings: 2021-06, and -10 Herb Sutter 2021-05-24 2021-06   All of WG21
N4889 WG21 admin telecon meeting: 2021-09 Herb Sutter 2021-05-24 2021-06   All of WG21
N4890 WG21 2021-05 Admin telecon minutes Nina Ranns 2021-06-25 2021-06   All of WG21
N4891 WG21 2021-06 Virtual Meeting Minutes of Meeting Nina Ranns 2021-06-24 2021-06   All of WG21
N4892 Working Draft, Standard for Programming Language C++ Thomas Köppe 2021-06-18 2021-06   All of WG21
N4893 Editors' Report - Programming Languages - C++ Thomas Köppe 2021-06-18 2021-06   All of WG21
P0205R1 Efficient Seeding of Random Number Engines Moritz Klammler 2021-06-24 2021-06 P0205R0 SG6 Numerics,LEWG Library Evolution,LWG Library
P0447R15 Introduction of std::hive to the standard library Matt Bentley 2021-06-16 2021-06 P0447R14 SG14 Low Latency,LEWG Library Evolution,All of WG21
P0533R7 constexpr for cmath and cstdlib Oliver Rosten 2021-06-24 2021-06 P0533R6 LEWG Library Evolution
P0533R8 constexpr for cmath and cstdlib Oliver Rosten 2021-06-24 2021-06 P0533R7 CWG Core,LWG Library
P1018R11 C++ Language Evolution status pandemic edition 2021/05 JF Bastien 2021-06-01 2021-06 P1018R10 EWG Evolution,All of WG21
P1072R8 basic_string::resize_and_overwrite Chris Kennelly 2021-06-03 2021-06 P1072R7 LWG Library
P1072R8 basic_string::resize_and_overwrite Chris Kennelly 2021-06-03 2021-06 P1072R7 LWG Library
P1132R8 out_ptr - a scalable output pointer abstraction JeanHeyd Meneide 2021-06-10 2021-06 P1132R7 LWG Library
P1202R3 Asymmetric Fences David Goldblatt 2021-06-14 2021-06 P1202R2 LWG Library
P1642R6 Freestanding Library: Easy [utilities], [ranges], and [iterators] Ben Craig 2021-05-30 2021-06 P1642R5 LWG Library
P1664R4 reconstructible_range - a concept for putting ranges back together JeanHeyd Meneide 2021-06-15 2021-06 P1664R3 SG9 Ranges,LEWG Library Evolution
P1675R2 rethrow_exception must be allowed to copy Billy O'Neal 2021-05-25 2021-06 P1675R1 CWG Core,LWG Library
P1689R4 Format for describing dependencies of source files Ben Boeckel 2021-06-14 2021-06 P1689R3 SG15 Tooling,SG16 Unicode
P1708R5 Simple Statistical Functions Richard Dosselman 2021-06-14 2021-06 P1708R4 SG6 Numerics,SG19 Machine Learning,LEWG Library Evolution
P1967R4 #embed - a simple, scannable preprocessor-based resource acquisition method JeanHeyd Meneide 2021-06-19 2021-06 P1967R3 EWG Evolution
P2164R5 views::enumerate Corentin Jabot 2021-06-15 2021-06 P2164R4 SG9 Ranges
P2165R2 Compatibility between tuple, pair and tuple-like objects Corentin Jabot 2021-06-15 2021-06 P2165R1 LEWG Library Evolution
P2290R1 Delimited escape sequences Corentin Jabot 2021-06-07 2021-06 P2290R0 SG22 Compatability,EWG Evolution
P2295R4 Support for UTF-8 as a portable source file encoding Corentin Jabot 2021-06-14 2021-06 P2295R3 SG16 Unicode,SG22 Compatability,EWG Evolution
P2299R3 `mdspan`s of All Dynamic Extents Bryce Adelstein Lelbach 2021-06-07 2021-06 P2299R2 LEWG Library Evolution
P2300R0 `std::execution` Michał Dominiak 2021-06-16 2021-06   SG1 Concurrency and Parallelism,LEWG Library Evolution
P2301R1 Add a pmr alias for std::stacktrace Steve Downey 2021-06-14 2021-06 P2301R0 LWG Library
P2321R2 zip Tim Song 2021-06-11 2021-06 P2321R1 LWG Library
P2322R3 ranges::fold Barry Revzin 2021-06-13 2021-06 P2322R2 LEWG Library Evolution
P2340R1 Clarifying the status of the "C headers" Thomas Köppe 2021-06-11 2021-06 P2340R0 SG22 Compatability,LEWG Library Evolution,LWG Library
P2347R0 Argument type deduction for non-trailing parameter packs Corentin Jabot 2021-06-14 2021-06   EWG Evolution
P2361R1 Unevaluated string literals Corentin Jabot 2021-06-11 2021-06 P2361R0 SG16 Unicode,EWG Evolution
P2368R1 2021 Spring Library Evolution Polls Bryce Adelstein Lelbach 2021-05-27 2021-06 P2368R0 LEWG Library Evolution
P2370R0 Stacktrace from exception Andrei Nekrashevich 2021-06-08 2021-06   LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library
P2380R1 reference_wrapper Associations Robert Leahy 2021-06-03 2021-06 P2380R0 LEWG Library Evolution
P2384R0 2021 Spring Library Evolution Poll Outcomes Bryce Adelstein Lelbach 2021-06-07 2021-06   LEWG Library Evolution
P2385R0 C++ Standard Library Issues to be moved in Virtual Plenary, June 2021 Jonathan Wakely 2021-05-26 2021-06   All of WG21
P2386R0 Core Language Working Group "ready" issues for the June, 2021 meeting William M. (Mike) Miller 2021-06-25 2021-06   All of WG21
P2387R0 Pipe support for user-defined range adaptors Barry Revzin 2021-06-12 2021-06   LEWG Library Evolution
P2388R0 Abort-only contract support Andrzej Krzemieński 2021-06-15 2021-06   SG21 Contracts
P2390R0 Add annotations for unreachable control flow Jens Gustedt 2021-06-07 2021-06   SG22 Compatability
P2391R0 C23 Update Report Aaron Ballman 2021-06-07 2021-06   All of WG21
P2392R0 Pattern matching using "is" and "as" Herb Sutter 2021-06-14 2021-06   EWG Evolution
P2393R0 Cleaning up integer-class types Tim Song 2021-06-12 2021-06   LWG Library
P2395R0 WG21 2021-06 Virtual Meeting Record of Discussion Nina Ranns 2021-06-24 2021-06   All of WG21
P2396R0 Concurrency TS 2 fixes David Goldblatt 2021-06-14 2021-06   LEWG Library Evolution,LWG Library
P2397R0 SG16: Unicode meeting summaries 2021-04-14 through 2021-05-26 Tom Honermann 2021-06-15 2021-06   SG16 Unicode
P2400R1 Library Evolution Report: 2021-02-23 to 2021-05-25 Bryce Adelstein Lelbach 2021-06-07 2021-06 P2400R0 All of WG21

How To Detect Function Overloads in C++17/20, std::from_chars Example--Bartlomiej Filipek

Which way you prefer?

How To Detect Function Overloads in C++17/20, std::from_chars Example

by Bartlomiej Filipek

From the article:

The problem: a library function offers several overloads, but depending on the implementation/compiler, some of the overloads are not available. How to check the existence of an overload? And how to provide a safe fallback?

In this article, I’ll show you a background “theory” and one case - std::from_chars that exposes full support for numbers or only integer support (in GCC, Clang)...

Template Specialization--Rainer Grimm

The series continue.

Template Specialization

by Rainer Grimm

From the article:

Templates define the behavior of families of classes or functions. Often it is required that special types or non-types may be treated special. To support this use case, you can specialize templates.

C++20 three-way comparison operator: Part 2--Gajendra Gulgulia

Simplifying your life.

C++20 three-way comparison operator: Part 2

by Gajendra Gulgulia

From the article:

In the first part of the tutorial series, I laid out the motivation behind C++20’s three way comparison operator: <=> and showcased the simplest use case how it can be useful to remove the boilerplate code for comparison operators : ==, >=, <=, !=, >, < if the semantics of the program requires us to implement them and how they can be gotten rid of by using the defaulted version of three way comparison operator...

Beta-Testing of PVS-Studio Plugin for JetBrains CLion

To fully test the plugin, you'll need to install both the beta plugin version and the C++ core beta version of the analyzer. There are several ways to install the plugin: from the official repository, from the repository on our site, or using Windows PVS-Studio installer. Below we'll tell you in detail how to do this.

Beta-Testing of PVS-Studio Plugin for JetBrains CLion

by Evgeniy Ovsyannikov, Paul Eremeev

From the article:

We usually recommend running full analysis regularly, such as once a day, at night. In addition to nightly analysis, we highly recommend checking new code immediately after writing it. This way you'll get the best advantage of using the analyzer. To do this, use incremental analysis, which works as follows. A project was changed, a developer runs a build. After successful compilation only modified files will be analyzed. Modified files are the ones that have been changed since the previous analysis.

Template Argument Deduction of Class Templates--Rainer Grimm

The series continue.

Template Argument Deduction of Class Templates

by Rainer Grimm

From the article:

In my last post Template Arguments, I wrote about function template type deduction (C++98) and auto type deduction (C++11). Today I wear more modern hats. I start with automatic type deduction of non-type template parameters and class templates (C++17) and finish with automatic type deduction of concepts (C++20).