March 2022

Standard C++ Foundation Annual Report for Fiscal Year 2021

FY2021 Annual Report – Standard C++ Foundation

(fiscal year ending 2021-06-30)



This fiscal year FY2021 from 2020-07-01 to 2021-06-30 was our first full year in the pandemic. Although most of the Foundation’s work is done virtually, the pandemic did affect some of our prominent operations: CppCon 2020 was held, but was virtual for the first time; and WG21 (ISO C++ committee) financial support was limited to grant support since there were no WG21 meetings or travel to support, but still totaled one of the largest annual support amounts ever.

As in every recent year, the majority of funds received and spent in FY2021 were from running CppCon, which still had large expenses even though it was all-online in FY2021. Also as usual, the second-largest expense category was WG21 support under the financial assistance policy with a record-tying grant that spanned FY2020 and FY2021. We also paid for continued ongoing development of an automated self-service WG21 paper handling system for committee papers, and other WG21 committee technical support.


Every year, the Foundation runs the CppCon conference, which is currently the largest C++ conference in the world. Since its inception in 2014, a goal for CppCon has been to help raise the bar for all sister C++ conferences. In our inaugural conference in 2014, we were the first C++ conference we know of to professionally record all talks and panels using a paid film crew, and make the videos available for free to everyone in the world; since then, several other conferences have followed suit, including that some have used the same video production company CppCon uses (Bash Films). In each year since, we have continued to strive to add features, most recently professional in-room live captioning.

In our prior year, FY2020, CppCon was held in September 2019. That was our largest event ever, with more tracks, more speakers, and more pre- and post-conference classes, and had just moved to a new “home” at the Gaylord Rockies near Denver, Colorado, USA. CppCon 2019 had many of our regular diversity and inclusion features, but for the first time we were able to add support for professional live captioning for the keynotes and largest sessions. Professional-quality live captioning is expensive, but is important to us because it helps many attendees better follow the live program — not only attendees who are deaf or hard of hearing, but also the many non-native English speakers in the audience since CppCon draws a diverse group attendees from all around the world every year.

In FY2021, CppCon was held in September 2020. For the first year since 2014, we did not have an in-person CppCon conference, because of the pandemic. However, we still held the event! It was all-virtual this year for the first time, thanks to the conference organizers and volunteers working tirelessly to figure out how to make an all-virtual CppCon that had as many of the features and flavor of CppCon that we could translate to an online experience, from the feel of the sessions and the exhibitor hall, to enabling groups of attendees to chat at virtual tables and even have the normal CppCon live band performing live remotely from a studio near their home base in Seattle, Washington, USA. We were glad to see nearly 1,000 technical attendees from around the world connecting and enjoying the conference and live chat with each other. One of the things we learned was that the online experience, and the lower online ticket prices it enabled, strongly attracted students; six percent of all CppCon 2020 attendees were students, which is roughly a four times higher percentage than in a normal year.

The professionally recorded C++ videos made available worldwide at no charge on the CppCon YouTube channel now have a combined viewership of 19.5 million views, with a total watch time of 3.9 million hours. The channel has over 100,000 subscribers.


Financial assistance for WG21 support

Every year, we provide regular financial assistance and support for WG21 standards meetings. This covers things like meeting hosting, travel expenses for participants in financial need, and funding grants as authorized by WG21 leadership on proposals that WG21 subgroups have encouraged and want to see progress but that the author cannot progress without some outside funding support.

In our prior year, FY2020, the Foundation provided financial travel assistance to help nine experts attend WG21 meetings who could not otherwise have attended. The Foundation also contributed toward the funding of the Cologne and Belfast meetings whose hosts’ expenses grew surprisingly because of the explosive growth in attendance in WG21 in recent years. — Historical note: Cologne and Belfast were two of the last three WG21 meetings before the pandemic shutdowns.

In FY2021 we had no expenses to support WG21 meeting hosting or travel to WG21 meetings because WG21 had no physical meetings during the pandemic. However, we continued to fund grants to progress WG21 proposals, notably contributing funding for the continued development of Reflection and Metaprogramming proposals and Clang-based prototypes as authorized by the main WG21 subgroup chairs per our assistance policy. — Historical note: This is one of our two largest grants ever by dollar amount, in a near tie with our very first grant in 2015 (and for which the board of directors created the financial assistance policy to cover grants) to support continued work on the Ranges papers and prototypes, without which at the time those would not have been able to continue progressing in WG21. Now that we have Ranges in C++20, we are pleased to have been able to have had an instrumental role in bringing them into the C++ Standard, and we hope that in the coming years that might happen again with Reflection if it continues to progress on its own technical merits.

Next report

Our next annual report will cover the fiscal year from 2021-07-01 to 2022-06-30, our second full year in the pandemic including CppCon 2021 which was our first hybrid event, partly in-person and partly on-line. The annual report will first be given as usual as a live presentation at our annual Foundation members meeting which is held during the week of the autumn WG21 meeting, which is expected to be in November in 2022. Thereafter it will be put into written form and posted online.

About the Standard C++ Foundation

The Standard C++ Foundation (Standard CPP Foundation in some databases that don’t support + in names) is a Washington 501(c)(6) not-for-profit organization whose purpose is to support the C++ software developer community and promote the understanding and use of modern Standard C++ on all compilers and platforms. We do this by operating and funding, the and repositories, the CppCon conference including and the CppCon YouTube channel, and providing financial assistance support for WG21 (ISO C++ committee) standards meetings for meeting hosting costs, travel assistance for attendees in financial need, and grants to progress WG21 proposals that have been encouraged but whose the authors cannot progress further without some financial assistance and that the WG21 major subgroup chairs have approved funding.


The “Standard C++ Foundation” name and stylized “C++” logo are trademarks of the Standard C++ Foundation. See's Terms of Use.

Pre-conference workshops at C++ on Sea 2022

This year's workshops are from Nico Josuttis, Jason Turner, Anthony Williams and Mateusz Pusz.

Workshops for C++ on Sea 2022

by C++ on Sea

Available workshops

Jason Turner - Better Code Reviews
Nicolai Josuttis - C++20 Concepts and Ranges In Practice
Mateusz Pusz - Introduction to Coroutines
Anthony Williams - Concurrent Thinking with C++20

Embedded Winter: Raspberry Pi 4B -- Richard Thomson

Utah C++ Programmers has released a new video.

Embedded Winter: Raspberry Pi 4B

by Richard Thomson

From the video description:

This Winter, we'll be hunkered down with embedded programming with C/C++ and some popular single board computer platforms popular in the 'maker' community.

This month, Richard Thomson will conclude with an introduction to the Raspberry Pi 4. Unlike the microcontrollers we've looked at so far, the Raspberry Pi is a complete linux computer system, with a local filesystem on an SD card, ample RAM, ethernet networking, USB ports for a keyboard and mouse and HDMI video. The Raspberry Pi foundation maintains a linux distribution tailored for the Raspberry Pi hardware.

In this presentation, we'll look at:

What are the on-board resources of the Raspberry Pi?
How do we access hardware resources under linux?

Execution and Static Analysis Support for MSVC on Compiler Explorer--Sy Brand

Will you try it?

Execution and Static Analysis Support for MSVC on Compiler Explorer

by Sy Brand

From the article:

Compiler Explorer is a popular resource for visualizing the assembly output of various compilers, trying out different compiler versions and flags, and testing many popular libraries.

We’re pleased to announce that, as of today, code execution and static analysis are now available for MSVC on Compiler Explorer. Execution on CE has been one of our highest voted tickets on Developer Community, so we hope many of you will find it useful. The static analysis tool provided is the same as offered in GitHub Actions and in the IDE as background code analysis...

Zero-cost exceptions aren’t actually zero cost--Raymond Chen

The devil is in the details.

Zero-cost exceptions aren’t actually zero cost

by Raymond Chen

From the article:

There are two common models for exception handling in C++. One is by updating some program state whenever there is a change to the list of things that need to be done when an exception occurs, say, because a new exception handler is in scope or has exited scope, or to add or remove a destructor from the list of things to execute during unwinding. Another model is to use metadata to describe what to do if an exception occurs. There is no explicit management of the state changes at runtime; instead, the exception machinery infers the state by looking at the program counter and consulting the metadata...