2021

CppCon 2021 A (Short) Tour of C++ Modules--Daniela Engert

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting some upcoming talks that you will be able to attend this year. Here’s another CppCon future talk we hope you will enjoy – and register today for CppCon 2021 to attend in person, online, or both!

A (Short) Tour of C++ Modules

Thursday, October 28 • 10:30am - 11:30am

by Daniela Engert

Summary of the talk:

Modules are probably the most impactful and most transformative recent major addition to the C++ language. From a user perspective, Modules are conceptually simple and the idea is easy to grasp. And with the C++20 ecosystem maturing, using Modules and adopting them into every-day programming is both feasable and advantageous.

But what is the motivation that lead to the invention of Modules and their inclusion into the standard? How do they look like? Which are the three key features of C++ Modules that exist since the inception of the language, that are mostly irrelevant in the typical usage of 'classical' C++ such that hardly any programmer needs to know much about them but a Modules developer does? What surprises might lie on the path of transforming a classical library into a Module? Are there still any issues, loose ends or open questions regarding Modules?

The talk will try to give a comprehensive answer to those questions. The audience shall get enough information to decide when the right time has come for them to take the plunge and move their codebase to Modules wherever it is advantageous.

Chinese translation: "Thriving in a crowded and changing world: C++ 2006-2020" -- Bjarne Stroustrup

Thanks to the Chinese C++ experts who did this translation of Bjarne Stroustrup's latest History of Programming Languages paper! That's a massive job, and translations of technical papers are very rare in our field.

Bjarne Stroustrup: Thriving in a crowded and changing world: C++ 2006-2020

English (Jun 2020)

Chinese (Oct 2021)

See also: Pre-recording and Q&A

ACM/SIGPLAN History of Programming Languages conference, HOPL-IV. London. June 2020.

All the HOPL-4 papers are posted as Proceedings of the ACM on Programming Languages Vol. 4.

ACCU 2022 Call for Papers -- ACCU

The ACCU is now putting together its program, and they want you to speak on C++. The ACCU conference has strong C++ tracks, though it is not a C++-only conference. If you have something to share, check out their

Call for Papers

by the ACCU

About the conference:

The ACCU 2022 conference will be from 2022-04-06 to 2022-04-09, with a pre-conference workshops on 2022-04-05.

The ACCU 2022 will be a hybrit event.

Historically, ACCU has a lot of C++ and C content, and is proud of that: ACCU is the foremost annual conference for people interested in C++ and C, at least in and around the UK. But it is not just a C++ and C conference, ACCU is about programming in whatever language people are using, with whatever tools and processes people are using: D, Chapel, Java, Kotlin, C#, F#, Groovy, Rust, Go, Python, Ruby, Lisp, to name just a few programming languages about which there have been sessions at ACCU conferences. Git, Mercurial, CMake, Meson, TDD, BDD, allthese tools and techniques have been the focus of sessions at ACCU. The ACCU Conference is looking for sessions that will be interesting to people who create software.
The ACCU Conference is put on by ACCU (https://accu.org), but is open to anyone who wishes to be there either as a presenter or an attender.

The Call for Papers lasts for about 3 weeks and will close on Friday 5th November 2021 at 23:59:59 GMT.

Cppcon 2021 C++20’s <chrono> Calendars and Time Zones in MSVC--Miya Natsuhara

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting some upcoming talks that you will be able to attend this year. Here’s another CppCon future talk we hope you will enjoy – and register today for CppCon 2021 to attend in person, online, or both!

C++20’s <chrono> Calendars and Time Zones in MSVC

Thursday, October 28 • 10:30am - 11:30am

by Miya Natsuhara

Summary of the talk:

The <chrono> header has existed since C++11, but C++20 dramatically increased its capabilities. MSVC has completed this C++20 feature and this session will focus on the development of our implementation and Windows-specific considerations that we encountered. For instance, how do we know if a given point in time is during a leap second insertion? Where do we get the data for time zones? If you are excited by these new chrono features and want to support a Windows platform, come and learn about its developments and caveats for a Windows implementation!

We will also touch on how STL maintainers and our valued external contributors developed the new features collaboratively. If you’re interested in participating in our open-source repo by reporting issues, contributing to discussions, or submitting pull requests, we hope that hearing about an example of collaboration will encourage you to visit our repo in the future.

Cppcon 2021 From Problem to Coroutine: Reducing I/O Latency--Cheinan Marks

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting some upcoming talks that you will be able to attend this year. Here’s another CppCon future talk we hope you will enjoy – and register today for CppCon 2021 to attend in person, online, or both!

From Problem to Coroutine: Reducing I/O Latency

Wednesday, October 27 • 10:30am - 11:30am

by Cheinan Marks

Summary of the talk:

Coroutines are now officially part of the C++20 standard and one of their advertised uses is reducing I/O latency. Almost all of the literature on coroutines that I found illustrated either synchronous generators or described the nitty gritty details of coroutines using very simple usages. The best talk I found was Gor Nishanov's excellent talk from CppCon 2018, "Nanocoroutines to the Rescue!" (go watch it!) which solves a different problem than mine, but mostly illustrates the power of coroutines.

In this talk I want to approach coroutines from another direction. I will start with the problem, which almost all engineers face in some form, that of reducing I/O latency while searching and gathering data from a sequential file. Instead of going into the details of how the coroutines work, I will start with the naive synchronous solution and build up coroutines step by step to try and reduce latency, illustrating the pieces as they are added.

Finally I will compare this solution to an old-fashioned solution using threads and we'll see how the coroutines performance measures up and whether all the additional boilerplate needed is worth the additional trouble. I hope discussing the value of coroutines and future proposals for RAII and executors will spark a good discussion with the audience.

Dependent Names--Rainer Grimm

The series continue.

Dependent Names

by Rainer Grimm

From the articles:

A dependent name is essentially a name that depends on a template parameter. A dependent name can be a type, a non-type, or a template parameter. To express that a dependent name stands for a type or a template, you have to use the keywords typename or template...

Improved Null Pointer Dereference Detection in Visual Studio 2022 version 17.0...--Gabor Horvath

Give it a try!

Improved Null Pointer Dereference Detection in Visual Studio 2022 version 17.0 Preview 4

by Gabor Horvath

From the article:

The C++ static analysis team is committed to making your C++ coding experience as safe as possible. We are adding richer code safety checks and addressing high impact customer feedback bugs posted on the C++ Developer Community page. Thank you for engaging with us and giving us great feedback on the past releases and early previews leading to this point. Below is the detailed overview of a new experimental code analysis check that can detect null pointer dereference errors, along with a comparison to an existing check that has the same purpose...