What's Next?

Concluding the course.

Congratulations! You have mastered the challenging and thrilling C++20 standard. C++20 has presumably the same influence as the other two significant C++ standards: C++98 and C++11. Due to C++11, the following names for the C++ standards are used by the C++ community.

  • Legacy C++: C++98, and C++03
  • Modern C++: C++11, C++14, and C++17
  • ?: C++20

I’m not sure what name will be used for C++20 in the future. I’m only sure that C++20 starts a new C++ area. As a refresher, let’s explore how the Big Four change the way we program in C++.

  • Concepts: Concepts revolutionize the way we think about and write generic code. Thanks to them, we can reason the first time in semantic categories such as Number or Ordering about our programs.
  • Modules: Modules are the starting point of software components. Modules help to overcome the deficiencies of legacy headers and macros.
  • Ranges: The ranges library extends the Standard Template Library with functional ideas: Algorithms can operate directly on the containers, can be evaluated lazily, and can be composed.
  • Coroutines: Thanks to coroutines, asynchronous programming becomes a first-class citizen in C++. Coroutines transform blocking function calls into waiting and are highly valuable in event-driven systems such as simulations, servers, or user interfaces.

C++20 is just the starting point. There is work to be done in C++23 to fully integrate and use the potential of the Big Four in C++. Let me give you a few ideas about the near C++ future:

  • The Standard Template Library was designed by Alexander Stephanov with concepts in mind. Still, the integration of concepts is missing in C++20.
  • We can expect a modularized Standard Template Library and hope for a packaging system in C++.
  • Many algorithms known from functional programming are still missing in the ranges library. A future C++ standard should improve the interplay of the ranges algorithms and the standard containers.
  • We don’t have coroutines. We only have a framework for building powerful coroutines. A coroutines library will be, with high probability, in C++23.

In the next two chapters, I give more details on the near future of C++.

To make it short: C++ has a bright, shiny future.

Get hands-on with 1200+ tech skills courses.