While the standard have received final technical approval by WG21 at the meeting in Prague in February 2020 and now undergoing final editorial work, following the approval of the draft on 4th September 2020.
C++ remains a very important language, and it is voted the fastest-growing language in the Tiobe Index of September 2020, where it ranks fourth behind C, Java, and Python. And Tiobe cites the C++ 20 specification as the major factor that gave the programming language a boost.
What's New in C++ 20?
C++20 brings new major features which were formerly not available in C++14 or C++17, with some changes that have been accepted into and those that have been discussed for inclusion into C++20. The new major capabilities in C++ 20 include:
- Synchronization library, for better support of fine-grained hardware control.
- Concepts to specify template requirements and support generic programming, which promises to improve code quality.
- Coroutines helps to generalize subroutines for use in nonpreemptive multi-tasking. Though the standardized support for coroutines is still lacking, as the full support is expected in C++ 23.
- Expansion statements for compile-time repetition of a statement for each element of a tuple, array, class, parameter pack, or range.
- Improvements in the context-sensitive recognition of import and module to aid non-compiler tools to determine build dependencies.
- Modules that enables programmers to use modular components.
Additionally, the new rangified algorithms which is a pure library extension of the Standard, with the paper complements P0896 adding rangified overloads for some of the non-parallel additions to
Also, the contracts capability which was expected in C++ 20 that specify pre-conditions, post-conditions, and assertions, have been removed. Therefore, Contracts has been marked as a C++ 23 item, albeit it may not make it to the final release.