Table of Contents

I’m happy to present the 10th edition of “C++ at the end”! See what happened this year in the C++ World!

New features, plans for the language, updated tools and compilers, conferences, books, and more!

What was the most important event this year? The pandemic? C++20 adoption? Ongoing work for C++23 or something else?

Let’s have a look.

Reports from previous years: 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012.

The following companies support this year’s report:

Disclaimer: the view presented here is mine and does not represent the opinion of the ISO C++ committee, companies I work for, or sponsors.

A Brief Introduction  

2021 was the full pandemic year, and we all seem to be tired, frightened, bored, or even divided (in various proportions). It looks like we have already accepted that the situation won’t change anytime soon. Focusing on programming, we can say that we’re lucky to adapt so fast to new life and workstyle in most cases. For many, working from home might be better than in the office, but ideally, having a mix is probably preferred.

Regarding C++, I see the following major trends and topics in 2021:

  • C++20 adoption,
  • C++23 ongoing, but seemed to be slowed by pandemic,
  • Better tools.

Read on to get the complete picture.

Timeline  

The below table helps to see the main events:

Date Event
February 22nd Virtual plenary meeting, ISO C++, WG21
March 9 - 14 Accu 2021
March 11th PVS-Studio 7.12
April 7/8 CLion 2021.1 & ReSharper C++ 2021.1
April 14th Clang 12.0
May 2–7 C++ Now
June 7th Virtual plenary meeting, ISO C++, WG21
June 19th Italian C++ Conference
July 28th CLion 2021.2
July 14th HPX V17.0 Released
July 28th GCC 11.2
August 3rd ReSharper C++ 2021.2
August 10th Visual studio 2019 16.11.0
August 11th Boost 1.77
September 10th C++ Builder 11.0 Alexandria
October 4th Clang 13.0
October 4th Virtual plenary meeting, ISO C++, WG21
October 25 - 29 CppCon 2021
November 8th Visual Studio 2022 generally available!
November 10 - 12 Meeting C++ 2021
November 15 - 18 C++ Russia
December 1st CLion 2021.3
December 8th ReSharper C++ 2021.3
December 10th PVS-Studio 7.16

Compiler Support for C++17  

It’s four years after C++17 was published, and this year we can say that all major compilers support the language features!

The only tricky thing is Parallelism - parallel algorithms. Clang still misses it, while GCC leverages Intel TBB as the backed infrastructure.

This year there was also good progress with floating-point support for low-level conversion routines - from_chars and to_chars. While integers have worked since early versions of GCC and Clang, the floats and doubles support happens only in version GCC 11 and Clang 14. The MSVC compiler implemented both numerical categories a long time ago.

You can find full data at C++17 compiler support - cppreference.com

Additionally since GCC 11: GCC 11 Now Defaults To C++17 Dialect By Default - Phoronix

and if you want to learn all features from C++17, here’s my oveview: C++ 17 Features - C++ Stories

Compiler Support For C++20  

On the other hand, it’s only one year after C++20 was standardized, and major compilers are very close to announcing full conformance!

Here are some of the best features added to the Standard:

  • Modules
  • Coroutines
  • Concepts and Concepts in the Standard Library
  • Ranges
  • operator <=> and its use in the Standard Library, simplified operator rewriting rules
  • Text formatting - std::format
  • Calendar and timezones
  • jthread, semaphores, more atomics, barriers, and more concurrency stuff
  • consteval and constinit
  • constexpr algorithms, vector, string, memory allocations
  • std::span
  • and more!

And here’s the table with compiler notes for language features:

Compiler Notes
GCC 11 Only Modules are in the “partial” state
Clang 12 partial for lambda features, NTTP, coroutines, modules, consteval, missing: Make typename more optional, conditionally Trivial Special Member Functions, CTAD improvements
MSVC 16.9 Full support!

While Clang was usually the fastest to implement various improvements, it looks like it slowed down, and other compilers (mostly MSVC) are taking its position.

Regarding library features:

Compiler Notes
GCC libstdc++ missing make_shared for arrays, make_unique_for_overwrite, text formatting, small atomic bits
Clang libc++ missing make_shared for arrays, FP atomics, osyncstream, atomics bits, make_unique_for_overwrite, Standard library header units, std::execution::unseq, jthread, constexpr string and vector, partial text formatting,
MSVC STL Full support as of MSVC 16.9, 17.0!

You can track the status @cppreference - C++20 support.

If you want to learn all features, you can see this great and super popular blog post by Oleksandr Koval:

All C++20 core language features with examples

This year at C++ Stories I also covered a lot of features from the new standard:

Here’s the tag with more than 45 articles (and growing) at the blog: Cpp20 - C++ Stories.

And have a look at modernescpp where Rainer Grimm covered probably all of the features in his long article series:

Additionally, you can also check out Jason Turner’s C++ Weekly with most C++20 features covered:

The C++23 Status  

If you cannot cope with new features in C++20… don’t worry; C++23 is just around the corner with cool new stuff :)

What’s more, some compilers already support a lot of features!

While it’s the end of 2021, we’re just two months away from marking the standard “feature freeze,” and no new features will be added.

Today, we know (and that was the plan) that C++23 will be much smaller than C++20, maybe even smaller than C++17. This new Standard will “complement” and finalize prominent features added in C++20.

Some features and their current support (including language and library elements):

Feature GCC Clang MSVC
Make () more optional for lambdas 11.0 13.0 x
if consteval 12.0 14.0 x
Deducing this x x x
Multidimensional subscript operator 12.0 x x
Stacktrace library x x x
std::is_scoped_enum 11.0 12.0 VS 2022 17.0
contains() for strings and string views 11.0 12.0 VS 2022 17.0
constexpr for std::optional and std::variant 12.0 13.0 VS 2022 17.1

Later this year, we could hear some updates from the members of the ISO Committee:

Some features that will probably land in C++23:

  • std::execution, P2300
  • A Plan for C++23 Ranges, P2214 (split into several separate papers)
  • std::generator: Synchronous Coroutine Generator for Ranges, P2168
  • std::lazy, P1056 - lazy coroutine (coroutine task) type
  • Formatted Output - std::print, P2093
  • std::mdspan, P0009
  • Mixed Comparisons For Smart Pointers, P2249

Networking has no consensus - TS is probably not worth putting into the Standard with its current state. Networking TS is also based on the ASIO model, and that can conflict with other features related to async. Do we need to have a single model for async processing? And last year, it appeared that this would not be going to work.

ISO C++ Online Meetings  

While all face-to-face gatherings are canceled, the ISO committee meets regularly on online meetings.

All SG groups work on their tasks and set of features. For example, in 2020, there were around 200 meetings in total. The number might be similar for 2021.

The committee has to vote on the features and merge them in the current draft from time to time. This usually happens in physical meetings, but there are online plenary sessions now. This year we had three of them:

  • February 22nd
  • June 7th
  • October 4th

You can get a grasp of the current “virtual” ISO process in this cool podcast with Bryce Adelstein Lelbach C++23 ISO Progress @CppCast.

And here are the reports written by Herb Sutter from two of those plenary meetings:

And here’s the current status:

Current Status : Standard C++

Mailings available in a nice table from isocpp.org:

Compilers  

Compiler vendors impress me with the speed of implementing new features and adding various improvements to the build stack.

Visual Studio  

This year, Microsoft released their official stable version of the new IDE: Visual Studio 2022 (current version 17.0)

See the release notes: What’s new in Visual Studio 2022 | Microsoft Docs

And the presentation by Scott Hanselman:

Welcome to Visual Studio 2022

Some of the most significant changes:

  • It is the first version to run as a 64-bit process! This change allows the Visual Studio process to access more than 4GB of memory which helps in large projects.
  • Hot Reload for C# and native C++ apps! It’s based on Edit & Continue.

A cool presentation about best feature for C++:

What’s New in Visual Studio: 64-bit IDE, C++20, WSL 2, & More - Marian Luparu & Sy Brand - CppCon 21 @YouTube

Some MSVC news and blogs:

And here’s a documentation page about the conformance with C++ Standards (including C++20): Microsoft C++ language conformance table

Additionally, you can track the progress of the Standard Library implementation at Github: Changelog · Microsoft/STL Wiki.

GCC  

Current stable version GCC 11.2 from July 28 GCC 11 Release Series.

You can also see the preview of the upcoming GCC 12: GCC 12 Release Series — Changes, New Features, and Fixes - GNU Project.

Among various new language features added into the latest versions of GCC, the big news is a new linker, called “mold”. rui314/mold: mold: A Modern Linker Mold (linker) 1.0 released [LWN.net]

The new linker offers dramatic speedup for the linking phase. For example, in one benchmark, compiling Chrome 96 goes down from 53 seconds (Gold linker) into just 2 seconds!

It will be added into GCC 12: GCC 12 Adds Support For Using The Mold Linker - Phoronix.

Language and the Library support notes:

Clang  

Current stable version: 13.0.0 from October 4, Release Notes — Clang 13 documentation.

And also, you can preview Clang 14: Clang 14.0.0 (In-Progress) Release Notes.

C++ Builder  

The current version is C++Builder 11 Alexandria, released on the 10th of September along with RAD Studio.

See the release notes.

Rad Studio Alexandria

The IDE uses a modified Clang Compiler (version 5.5, see the compiler notes), supports C++17. The Dinkumware C++17 STL implementation works with both Win32 and Win64 apps. C++Builder is a full-featured IDE for building iOS, Android, Windows, and macOS apps from a single C++ codebase.

You can also check the Community version: C++Builder: Community Edition - Embarcadero.

Interestingly, Embarcadero supported Dev C++, and they managed to release a new (and free) version of this excellent and small IDE! Here’s the Github link: Embarcadero/Dev-Cpp: A fast, portable, simple, and free C/C++ IDE

IDE and Productivity  

Here’s a nice overview of the whole C++ Ecosystem: C++ Ecosystem: Compilers, IDEs, Tools, Testing and More - C++ Stories

And below, you can find a list of their updates in 2021:

Visual Assist  

Visual Assist is a powerful addition to any of Visual Studio versions; it improves almost every aspect of VS IDE.

The latest version is from November 2021 - see the latest Release notes

This year the VA team managed to put a lot of improvements, especially in code inspections and better performance for large projects.

See the recent news on their blog:

ReSharper C++  

ReSharper C++ is a Visual Studio productivity extension for C++ developers. It enhances the built-in features of Visual Studio, like refactoring, code analysis, navigation, and others.

In 2021, ReSharper C++ added support for the most recent C++20 language features and provided quick fixes to modernize the codebase automatically. The extension brought support for many rules from the C++ Core Guidelines and received extended capabilities for Unreal Engine game developers, like creating UE classes from templates without launching Unreal Editor.

A detailed summary of this year’s changes can be found here: What’s New in ReSharper C++.

CLion  

CLion is a cross-platform IDE for C and C++ by JetBrains. It works for projects in a wide range of fields, including trading and banking, embedded systems and AI, and many others.

In 2021, CLion extended the scope of its lifetime analysis to the translation unit and doubled the coverage of the MISRA C 2012 and MISRA C++ 2008 specifications. CMake presets and GNU Autotool projects are also now supported. The debugger received lots of enhancements and RTOS debugging was addressed, with dedicated tables and data now available in debug mode. CLion now features Code With Me, a new JetBrains service for collaborative development and pair programming, and it now supports the new remote development workflow. A detailed summary of this year’s changes can be found here: What’s New in CLion.

Clang Power Tools

For Visual Studio, you can use Clang Power Tools - @Visual Studio Marketplace. Developed by Victor Ciura (@ciura_victor) and his Team.

Clang Power Tools is a free Visual Studio extension helping C++ developers modernize and transform their code to C++14/17/20 standards by using LLVM’s static analyzer and CppCoreGuidelines.

This year, in February, the team announced that the tool is now free for all users. See their blog post: Next steps for Clang Power Tools.

Clang Tools

Clang/LLVM powers many great utilities! For example:

Compiler Explorer

Compiler Explorer, created by Matt Godbolt, is an interactive tool that lets you type code in one window and see the results of its compilation in another window.

Among many cool features, this year, Matt Godbolt’s team introduced a way to use CE with multiple files and manage them via CMake scripts! This is called “IDE mode”.

See this excellent tutorial: Compiler Explorer with Cmake–Gajendra Gulgulia : Standard C++.

I’ve been using this tool (along with Wandbox) to experiment with various C++ features and even separate tools (like clang-tidy). It offers a way to check code against multiple compilers or libraries quickly.

Others:

Sourcetrail

It’s (or was…) a free and open-source, cross-platform source explorer. It was developed for several years, but unfortunately, the team decided to stop after releasing some final updates this year. See the blog post: Discontinue Sourcetrail

Package Managers:

Conan

The open-source, decentralized and multi-platform package manager. Version 1.43 available this year. See their recent blog posts:

Microsoft/vcpkg: VC++ Packaging Tool

An open source C++ Library Manager for Windows, Linux, and MacOS. See the latest articles and releases:

Code Analyzers:  

Various static code analyzers are available for C++. They range from simple checkers to super-advanced systems. The tools make it possible to detect problems early, improve code style, and add security bounds. While C++ is a complex language to parse, the analyzers heavily enhanced and are state-of-the-art tools in recent years.

PVS-Studio  

PVS-Studio is a static code analysis solution that detects errors in C++ programs on Windows, Linux, and macOS. Available with popular IDEs, including CLion. Run it locally or in the cloud.

PVS-Studio’s developers implemented intermodular analysis of C++ projects and supported security and safety standards, including Misra C.

In December 2021, PVS-Studio released version 7.16. To learn more, click here: PVS-Studio 7.16, expanding the horizons: Misra C, Visual Studio 2022, .NET 6.

Use the cppstories2021 promo code and get a 30-day PVS-Studio license for your project.

SonarQube  

SonarQube is an open-source platform developed by SonarSource for continuous inspection of Code Quality to perform automatic reviews with static analysis of code to detect bugs, code smells, and security vulnerabilities on 29 programming languages. SonarQube also supports the latest versions of C++!

In a recent blog article, the SonarSource team noted that they already have 28 C++20-specific rules in the latest releases of all of their products, including SonarQube, (with many more in development) aiming to make your coding easier and your code safer and more performant. Take a look and see what you can try today.

SonarLint  

SonarLint is a free IDE extension (for most IDEs out there) that highlights bugs, code smells and security vulnerabilities directly in the IDE as you write code, with clear remediation guidance.

Its most recent release brings support for ‘Quick Fixes’ in CLion. For over 40 rules (unique and not available in the IDE or an improved version!) you can find and easily repair issues in your C and C++ code. It also includes additional C++ rules to help you avoid pitfalls when using new C++20 features.

You can visit the SonarLint What’s New page to see all the latest news about the free tool.

Others:

  • CppCheck - it’s a static analysis tool for C/C++ code, this year at version 2.6, see the release notes.
  • CppDepend - this year we have version CppDepend v2021.1 - What’s new in CppDepend!
  • Deleaker - it’s an extension for all major IDEs and a standalone application for memory leak detection - memory, GDI, and handles. Supports C++, C#, .NET and Delphi. See the latest release notes.

Conferences  

Fortunately, this year, some conferences tried to open their physical venues or go hybrid. This is a good opportunity to target larger audiences and offer a way to get most of the content on flexible terms.

Have a look at this link to ISO C++ page with all registered conferences around the world: Conferences Worldwide, C++FAQ.

Some notable conferences in 2021:

CppCon 2021

October 25 till 29 (usually it was in late September), hybrid model.

You can watch keynotes, and other videos through this page: https://pages.jetbrains.com/cppcon2021

Trip Reports:

Meeting C++ 2021

10 - 12th November 2021, fully online

https://meetingcpp.com/2021/

C++ Russia

15 Nov - 18 Nov

It’s a conference with several tracks of in-depth technical talks devoted to C++. https://2021.cppconf.ru/en/

C++ Now

May 2–7

You can watch video recordings through the following pages:

ACCU 2021

ACCU 2021 - It Happened between March 9 to March 14; it was a virtual event.

See the recordings:

Community & User Groups  

User groups are a chance for you to meet other C++ programmers, share your experience and learn new things. I highly recommend visiting such groups regularly… or at least once in a while.

If you don’t have a User Group close to your place (but please check User Groups Worldwide), you can also participate in:

Additionally, Meeting C++ created Meeting C++ Online - a global monthly event where you can join and watch amazing C++ presentations. See it here: Meeting C++ online.

Jens Weller also organizes Meeting C++ online - job fair, and it’s an opportunity for you if you want to see for some new roles and get experience with new companies.

No Diagnostic Required show and C++ Annotated digest

For dynamic summaries of the latest developments from the C++ ecosystem, standardization news, and popular articles, take a look at the No Diagnostic Required YouTube show and podcast run by Anastasia Kazakova and Phil Nash. If you prefer to read your news, you can find written versions of our digests in the C++ Annotated emails and blog posts.

Books  

A few selected books that arrived in 2021 (or late 2020):

Disclaimer: Links in the table are affiliate links to Amazon.

Name Release Date
Object Lifetime Puzzlers - Book 1 by Jason Turner December
Beautiful C++: 30 Core Guidelines… by J. Guy Davidson, Kate Gregory December
Discovering Modern C++ 2nd Edition by Peter Gottschling December
Embracing Modern C++ Safely by by J. Lakos, V. Romeo, R. Khlebnikov, A. Meredith December
The Art of Writing Efficient Programs by Fedor G. Pikus October
Modern C++ for Absolute Beginners by Slobodan Dmitrović July
C++20: Get the Details by Rainer Grimm April
Software Architecture with C++ by A. Ostrowski and P. Gaczkowski April
Professional C++ 5th Edition by Marc Gregoire April
My C++ Lambda Story in Print February
C++ Best Practices by Jason Turner January
Performance Analysis and Tuning on Modern CPUs by Denis Bakhvalov November 2020
Beginning C++20 6th, Ivor Horton and Peter Van Weert October 2020

Plus, there is ongoing work for another C++20 Book by Nicolai M. Josuttis: “C++20 - The Complete Guide”.

Promotions!

Exclusively for this article Rainer Grimm from modernescpp.com offers 30% off for his ebook on C++20! Grab it here:

Nicolai M. Josuttis offers the following coupon code:

You can also grab my books:

Popularity  

C++ seems to have stable growth in various programming languages' “popularity” charts this year.

Have a look:

The image is based on data from Stack Overflow survey and Tiobe Index.

It looks like C++ got a bit more love than last year! :)

Additionally, according to Github, Octoverse C++ is in 7th position (last year it was also 7th place), see here.

Your Input & Survey  

On 20th December, I started my annual survey about the use of C++ in the last year. I got 782 votes, thank you!

Let’s make some summary and tables from your answers :)

C++ Standard Used

On a daily basis, which C++ Standard do you use?

Answer 2021 2020 2019 2018
Pre C++11 7.5% 8.4% 10.3% 20%
C++11 25.6% 25.5% 30.3% 41%
C++14 28% 28.6% 35% 42%
C++17 66.1% 64.4% 62.4% 44%
C++20 28.8% 20.4% 9.2% n/a

(The numbers for the above do not sum to 100%)

C++ Use 2021 vs 2020

As we can see, fewer and fewer people use pre C++11. The same goes for C++11… Yet even in 2021, around 1/4 of C++ devs don’t have the luxury to work with the latest Standard.

C++17 dominates and rose from 44% in 2018 to more than 66% today. The trend for C++20 is on the way to taking over C++17 in two or more years.

Experience with C++17

What’s your experience with C++17?

Answer 2021 2020 2019
experimenting with C++17 28.9% 34.9% 39.4%
only read basic information 11.4% 9.4% 13.4%
already using in production 56.6% 52.2% 41.6%
don’t know any of its feature <1% 1.6% 2.6%

C++17 becomes a production-ready standard, so fewer people experiment with it and move to the production code. GCC 11 also made C++17 a default dialect.

Experience with C++20

What’s your experience with C++20?

Answer 2021 2020 2019
experimenting with C++20 35.7% 35.6% 29.3%
only read basic information 44.1% 50.8% 59.8%
already using in production 12.8% 6.8% n/a
don’t know any of its feature 6% 5.2% 9.1%

Compilers Used

What compiler do you use?

Answer 2021 2020 2019
GCC 76% 70.3% 75.6%
Clang 51.8% 49.6% 58.7%
MSVC 54.1% 58.5% 56.3%
Intel Compiler 2.3% 2.8% 3.1%
C++ Builder 2.2% 3% 1.2%

(The numbers for the above do not sum to 100%)

What IDE do you use for C++ projects

New question for 2021!

Answer 2021
Visual Studio 48.8%
Visual Studio Code 47.1%
CLion 18.5%
C++ Builder IDE 2%
Eclipse 5.8%
Vim/Emacs 26.9%
QT Creator 15.7%
Notepad++ 7.4%
XCode 6.1%

What additional tools do you use?

Answer 2021 2020 2019
Debugger 80.8% 77% 83.6%
Sanitizers 38.9% 31.9% 40.4%
Static Code Analysis 58.7% 60.9% 55.7%
Profilers 49.1% 53.4% 56.8%
Clang Format 49.4% 43.3% 49.3%
CMake 67.3% 62.3% 66%
Package Managers 26.2% 23.2% 21.4%

(The numbers for the above do not sum to 100%)

Best thing that happened in 2020:

Answers from this open question, based on popularity (I tried to group similar things), no special order:

  • CppCon
  • C++20 standardization and Compiler support for C++20
  • Modules from C++20 have big impact on projects
  • Full Compiler support for C++17
  • Conferences: Meeting C++, Corecpp, CpponSea, C++ Russia, C++Now, and a lot of virtual C++ meetups
  • Progress on C++23
    • std::expected,
    • The deducing this paper made it into C++23,
    • std::print,
    • std::executors proposal
  • books like: “A Tour of C++"”, “Introduction to programming with C++ for engineers” by Boguslaw Cyganek, Wiley, “Clean C++20” by Stephan Roth, Professional CMake: A Practical Guide, Mastering the C++17 STD by Arthur O’Dwyer
  • C++20 books: C++17, and C++20 books from Rainer Grim, Andreas Fertig and Nicolai M. Josuttis
  • Release of Visual Studio 2022, improvement of lifetime profile in VS
  • Steady improvement of the language
  • Overwhelmed by the Standard or hard to follow
  • Better tools, 4, Unreal Engine 5, Godot Engine, docker, gcc 11, mold, Conan, clang-format, VCPKG, cmake-init, Package Managers got better, ASan support in MSVC, RAD Studio 11, Clion, VS Code
  • Better libs: Filesystem library for cross-platform Windows-Linux programming, IDK, QT 6.2, SYCL
  • Good resources: such as fluentcpp, cppcast, Jason Turner videos, Klaus Iglberger’s software design talks, Pluralsight courses, C++ Guides
  • Compiler Explorer (godbolt.org) just keeps getting better and better
  • Remote C++ Work and online talks available for a lot more people.
  • C++ renaissance in various ways, large scale applications with C++
  • In overall becomes more friendly

A good summary:

C++20 is being used more and more, and C++ is still a top programming language. For me, first started programming in C++ circa 1992. To me C++ is the Best Programming Language Ever. And I appreciate all the work people like yourself contribute to C++. The best thing about C++ in 2021: we are still here programming in C++ with C++20 with no end in sight.

Additionally, it’s great to hear such news like

  • Completing a C++ course (or courses),
  • Role change, promotions
  • contribution to some open source project
  • Convinced leadership to bump up to cpp17

There were also many positive opinions about the blog and the newsletter! Thank you!

“I read your newsletter, so it seems to be the best thing…”

“Your website gave me very good info about c++.”

Other surveys:

My survey is not the most important :) Have a look at other larger surveys run by those companies:

What Expert says  

As a bonus, here are a couple of opinions from C++ experts about the past year:

“It’s exciting to see C++ ecosystem in 2021 moving towards having a standard toolset. CMake has grown from 34% in 2017 to 55% in 2021, becoming the absolute leader several years ago. Clang is adopted by many tool vendors and has evolved because of the community, with ClangFormat and Clang-Tidy tools seen as the de-facto Standard. meanwhile, language developers considers toolability aspect of the C++ features crucial for further adoption among everyday C++ developers.”

Anastasia Kazakova, @anastasiak

“2021 continued to be challenging in terms of global pandemic. But the C++ community is very creative and continues to collaborate well. We have been fortunate to have great people that share their knowledge, publish books, write articles and run user groups. For me, the C++ twitter community is fun and very supportive. I enjoy running the San Diego C++ meetup and hoping to get back to in-person meeting very soon.”

Yacob (Kobi) Cohen-Arazi, @kobi

“For me, the biggest satisfaction in terms of C++ this year was finally full C++20 conformance in VisualStudio 2019 (latest versions) and the launch of VS 2022, my favorite C++ IDE and toolchain. This allowed my team to switch to C++20 in production and leverage the new language & library features for more succinct and robust code. After a disappointing 2020, C++ conferences in 2021 were back in full swing (no cancellations and lots of attendees), albeit in online format. CppCon was an interesting hybrid experience, but with limited onsite attendance.”

Victor Ciura, @ciura_victor

“My view of C++ in 2021 was strongly coloured by the future and the past. Helping write a book on the Core Guidelines reminded me of so many things we used to do and just don’t anymore because we have better ways.

Writing a course on what’s new in C++20 got me excited about all the things that will be so much easier in everyday code now. Time zones, composing range views, concept-powered error messages, spaceship operator - large and small these additions will keep making it easier to write fast and correct C++.”

Kate Gregory, @gregcons

“I am deeply worried about the path the C++ standard committee took in 2021. While not willing to fix a severe bug in the range-based for loop known for 10 years now, we prefer to release features that are not mature without allowing to fix them due to backward compatibility. Chaos and complexity grows significantly and it doesn’t look good for the future of C++.”

Nicolai Josuttis, @NicoJosuttis

Summary  

Thanks for reading this long blog post!

So many things, events, tools, C++ features.

Are we in good shape in 2021?

It was a challenging year for many of us. We hoped that the pandemic would be over, but it’s not, and we need/had to adapt. The standardization process for C++23 was also hit, and it looks like it’s harder to process more extensive features. Yet the new Standard is in good condition, and in February, we should see its “feature freeze” state.

On the other hand, this year was very positive regarding the adoption of C++17 and C++20. C++17 is now a default dialect for GCC 11, and it’s now the “production-ready” Standard. As you can see in my survey reports, many developers use it daily. C++20 is now completed in almost all compilers, so it’s also an excellent time to introduce it into production.

The recent years are also filled with various improvements and new tools that improve our experience with the language. Better IDEs, smart suggestions core guideline checkers, linters, code analysers, clang format, sanitizers, package managers. While we could complain about the lack of tooling 10 years ago, this year, it’s not an option… and it’s even hard to keep up with all cool things that happen.

To summarize, my big things for 2021:

  • C++20 adoption
  • C++23 ongoing
  • Better tools

Additionally, as a side effect of current times, many companies opened for remote work, even after pandemic times. Such change gives us, C++ programmers, even more options for employment. Similarly, we can join many online meetings and take benefit of various meetups and conferences. While it’s probably not as good as physical events, it can reduce costs and open it for a larger audience.

Best wishes!

Your Turn

  • What do you think about C++ in 2021?
  • What was the most important event/news for you?
  • Did I miss something?

Join the discussion below the article and also in this reddit/cpp thread.