January 2021

Advanced Modern C++ -- Mateusz Pusz

We are happy to announce the next edition of a really well-rated Advanced Modern C++ training by Mateusz Pusz. If you would like to better understand the C++ language rules, improve your design and implementation skills, practice C++ templates, and get more experience with the Modern C++ please do not hesitate to register for an online training on March 22, 2021.

Advanced Modern C++

by Mateusz Pusz

From the article:

Training Highlights

  • Emphasis on understanding the philosophy and mechanisms of the C++ programming language and learning how to reuse this knowledge in own code
  • Particular focus on the usage of the C++ templates in practical tasks
  • Development of error-unfriendly code
  • Selection of useful patterns and techniques that prove in a demanding production code

Training Agenda

  • C++ Basics for Experts
  • Coding with performance in mind
  • Utilities that every C++ developer should know and use
  • Templates demystified

More detailed agenda can be found on the Train IT website.

Date: March 22 - 25, 2021

Location: Online training

Instructor: Mateusz Pusz

Target Audience: Developers, Architects

Level: Intermediate, Advanced

Matching Text -- Richard Thomson

Utah C++ Programmers has released a video on Matching Text:

Matching Text in C++

by Richard Thomson

From the video description:

Many times in our code we need to validate a given piece of text against some pattern. We may only interested in validating that the text matches or we may be interested in extracting matched substrings from the whole string. We can write code from scratch to perform this matching or we can use libraries to tackle the problem. What library options are available to us in C++?

This month, Richard Thomson will give us a sampling of different methods we can use to attack the problem.

YouTube: https://www.youtube.com/watch?v=5FJvF41B8R4

Inlining and Compiler Optimizations--Scott Wolchok

The complicated world of optimisations.

Inlining and Compiler Optimizations

by Scott Wolchok

From the article:

Why is inlining so important in C++? Clearly, it reduces function call overhead: if a function is inlined, there is no need to spend time setting up its arguments, jumping to it, creating a stack frame, and then undoing all that upon returning. More interestingly, though, inlining enables other compiler optimizations. In this article, I will show examples of constant propagation and loop-invariant code motion (LICM). Then, I will explain how inlining enables these optimizations to apply more widely and show an example of the consequences when that doesn’t happen...

ACCU 2021 Schedule Published -- ACCU

The schedule for the ACCU 2021 conference has been published. The complete conference will be held online because of the pandemic.

ACCU 2021 Schedule


About the schedule

Again there are three strong C++ tracks!

The keynote speakers are Emilie Bache, Kevlin Henney, Patricia Aas and Sean Parent

Beside the four days (2021-03-10 - 2021-03-13) with great talks, there are two days with these C++ related fullday workshops on the days before and after the conference.

  • Better Code by Sean Parent
  • Good Modern C++ Design and Practices by Peter Sommerlad
  • Modern C++ Template Programming by Nico Josuttis
  • Modern C++ Idioms by Mateusz Pusz
  • Building and Packing Modern C++ by Adrian Ostrowski and Piotr Gaczkowski
  • C++ Concepts: Constraining C++ Templates in C++20 and before by Mateusz Pusz

So don't hesitate to register here. The early bird discount is available until 2021-02-16.

The schedule is subject to change without notice until 2021-03-14




2021-01 mailing available

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


WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P0447R12 Introduction of std::colony to the standard library Matt Bentley 2021-01-14 2021-01 P0447R11 SG14 Low Latency,LEWG Library Evolution,All of WG21
P0847R6 Deducing this Barry Revzin 2021-01-15 2021-01 P0847R5 EWG Evolution
P1121R2 Hazard Pointers: Proposed Interface and Wording for Concurrency TS 2 Maged M. Michael 2021-01-14 2021-01 P1121R1 LWG Library
P1425R2 Iterators pair constructors for stack and queue Corentin Jabot 2021-01-18 2021-01 P1425R1 LEWG Library Evolution,LWG Library
P1682R2 std::to_underlying JeanHeyd Meneide 2021-01-16 2021-01 P1682R1 LWG Library
P1708R3 Simple Statistical Functions Richard Dosselman 2021-01-14 2021-01 P1708R2 SG19 Machine Learning
P1989R1 Range constructor for std::string_view 2: Constrain Harder Corentin Jabot 2021-01-17 2021-01 P1989R0 LWG Library
P2036R1 Changing scope for lambda trailing-return-type Barry Revzin 2021-01-13 2021-01 P2036R0 EWG Evolution
P2072R1 Differentiable programming for C++ Marco Foco 2021-01-14 2021-01 P2072R0 All of WG21
P2093R3 Formatted output Victor Zverovich 2020-12-26 2021-01 P2093R2 LEWG Library Evolution
P2168R1 generator: A Synchronous Coroutine Generator Compatible With Ranges Corentin Jabot 2021-01-18 2021-01 P2168R0 LEWG Library Evolution
P2210R1 Superior String Splitting Barry Revzin 2021-01-04 2021-01 P2210R0 LEWG Library Evolution
P2216R2 std::format improvements Victor Zverovich 2021-01-14 2021-01 P2216R1 LWG Library
P2232R0 Zero-Overhead Deterministic Exceptions: Catching Values Emil Dotchevski 2021-01-22 2021-01   EWGI SG17: EWG Incubator
P2244R0 SG14: Low Latency/Games/Embedded/Finance/Simulation Meeting Minutes Michael Wong 2021-01-14 2021-01   SG14 Low Latency
P2245R0 SG19: Machine Learning Meeting Minutes Michael Wong 2021-01-14 2021-01   SG19 Machine Learning
P2246R1 Character encoding of diagnostic text Aaron Ballman 2021-01-15 2021-01 P2246R0 EWG Evolution
P2259R1 Repairing input range adaptors and counted_iterator Tim Song 2021-01-13 2021-01 P2259R0 LWG Library
P2266R0 Simpler implicit move Arthur O'Dwyer 2021-01-07 2021-01   EWG Evolution,CWG Core
P2276R0 Fix std::cbegin(), std::ranges::cbegin, and cbegin() for span (fix of wrong fix of lwg3320) Nicolai Josuttis 2021-01-15 2021-01   LEWG Library Evolution,LWG Library
P2277R0 Packs outside of Templates Barry Revzin 2021-01-03 2021-01   EWG Evolution
P2278R0 cbegin should always return a constant iterator Barry Revzin 2021-01-10 2021-01   LEWG Library Evolution
P2279R0 We need a language mechanism for customization points Barry Revzin 2021-01-15 2021-01   EWG Evolution
P2280R0 Using unknown references in constant expressions Barry Revzin 2021-01-13 2021-01   EWG Evolution
P2281R0 Clarifying range adaptor objects Tim Song 2021-01-14 2021-01   LWG Library
P2283R0 constexpr for specialized memory algorithms Michael Schellenberger Costa 2021-01-12 2021-01   LEWG Library Evolution
P2285R0 Are default function arguments in the immediate context? Andrzej Krzemieński 2021-01-14 2021-01   EWG Evolution
P2286R0 Formatting Ranges Barry Revzin 2021-01-15 2021-01   LEWG Library Evolution
P2287R0 Designated-initializers for base classes Barry Revzin 2021-01-20 2021-01   EWG Evolution

CopperSpice: Atomics

New video on the CopperSpice YouTube Channel:


by Barbara Geller and Ansel Sermersheim

About the video:

We have released a new video which continues our C++ Memory Model discussion. This section covers the usage of Atomics and memory ordering. Do you know about the expected value in compare_exchange?

Please take a look and remember to subscribe!