C++ developers flocked to Colorado for CppCon 2019. The convention is intended for personal networking and slideshow presentations, but its size leads to a handful of niche announcements that might be interesting to our readers when bundled together.
Microsoft open sources their C++ standard template library (STL)
The Visual C++ team has released their implementation of the standard library on GitHub. Even better? It is available under the permissive Apache License v2.0 with LLVM Exceptions, allowing developers to integrate pieces of it into their own applications for free. In fact, it is the exact same license that libc++ uses, allowing code to migrate freely (from a legal standpoint) between the two projects.
If you have ever seen msvcp###.dll or the “Visual C++ Redistributable” – that is the Visual C++ STL.
Clang 9.0 Released
The latest version of the C++ LLVM compiler has been released. This version has several interesting optimizations, such as combining branches if they, for instance, all perform the same instructions with slightly different parameters. (The case they show is where a switch statement that goes through all choices of an enum ends up calling the same void method pointer with a different value.)
Clang 9.0 is also the first version to successfully build the 64-bit Linux kernel. Previous versions did not implement the GNU “asm” extension.
C++20 Concepts Arrive in Visual Studio 2019
C++ Concepts is a long-awaited feature for template programming, which the standards committee struggled with for almost two decades. It allows the user to write expressions that the compiler executes for quicker compiles and more control over generated code. It was not on my personal radar, but that might be a single “oh wait” away from heavily using it. They are now available in the preview release of Visual Studio 2019 16.3.