Bartek, a C ++ software engineer, posted a blog reviewing the development of C ++ in 2019.Bartek mainly introduced the evolution of C ++ features in 2019, major progress in conferences around the world, improvements in related tools, and expectations for new features in C ++ 20. He summarized three major concerns:
- C ++ 20 is coming soon
- Tools, now it’s easier to write C ++ code
- C ++ ‘s stable position among developers
(It should be noted that the opinions expressed in this article are only those of Bartek and do not represent the views of the entire ISO C ++ committee.)As can be seen from the table below, in 2019, the C ++ community did a lot of things, such as the progress of new features we are focusing on, such as Clang 8.0.0, 9.0.0 release, VS 2019 release and GCC 9.1 release, etc. .
- Module
- Coroutine
- Concepts of the standard library Concepts
- range
- constexpr support: new / delete, dynamic_cast, try / catch, virtual
- constexpr vectors and strings
- Timing: calendar, time zone support
- std :: format
- std :: span
- std :: jthread
Popular compilers have implemented many C ++ 20 features. Bartek lists a small table of new C ++ 20 features:In terms of tools, first of all, Visual Studio provides many new support for C ++, including:
- AI-assisted code completion using Visual Studio IntelliCode
- Clang-Tidy support for Clang and MSVC in C ++ MSBuild and CMake projects
- AddressSanitizer supports projects compiled with MSVC on Windows
- Better integration with CMake
- Concepts available in 16.3
- Full to_chars () support, meeting the requirements of C ++ 17
- A new collection of tools is provided called C ++ Build Insights.
Clang / LLVM provides many powerful utilities, such as:
- Clang Tidy
- Clang-Include-Fixer
- AddressSanitizer
- MemorySanitizer
Code analyzer CppDepend v2019.3 adds support for MISRA coding guidelines, VS 2019 support, QT projects, simplified UI, embedded project support.PVS-Studio, an error detection tool in the source code of programs written in C / C ++ and C #. Some significant changes in 2019 include .NET Core 3 and 3.1 project analysis, MISRA guidelines support, and more than 40 new checks Support for Java and SonarQube plugins.The package manager Conan and Microsoft / vcpkg also have some new changes.Finally, Bartek introduced that C ++ ‘s position in the developer community will remain stable in 2019:
- C ++ ranks 4th in the TIOBE programming language rankings.
- In the StackOverflow survey, C ++ is ranked 9th above C.
- In a GitHub survey, C ++ ranked 6th.
In addition to these lists, Bartek also conducted a simple survey questionnaire, and the results showed the use of C ++, including the standard library version used, the choice of tools, and the use of new C ++ 20 features: