C++ Team Blog

C++ tutorials, C and C++ news, and information about Visual Studio, Visual Studio Code, and Vcpkg from the Microsoft C++ team.

<format> in Visual Studio 2019 version 16.10
<format> in Visual Studio 2019 version 16.10
C++20 adds a new text formatting facility to the standard library, designed primarily to replace snprintf and friends with a fast and type safe interface. The standardized library is based on the existing {fmt} library, so users of that library will feel at home. Before diving into how std::format works I want to thank Victor Zverovich, ...
Preview of using CMake Presets for Azure Sphere development
Preview of using CMake Presets for Azure Sphere development
We are happy to announce that CMake Presets preview support is available in the Visual Studio 16.10 release as well as CMake Tools version 1.7 for Visual Studio Code. Erika introduced CMake Presets and why you should use them, this post will focus on how they can be used for Azure Sphere development across Visual Studio, VS Code, and GitHub...
C++20 Ranges are complete in Visual Studio 2019 version 16.10
C++20 Ranges are complete in Visual Studio 2019 version 16.10
We are proud to announce completion of our implementation of C++20 Ranges in the Standard Library in the VS2019 v16.10 release under/std:c++latest. We announced the first useful user-visible parts of Ranges in VS 2019 v16.6 in mid 2020, the trickle accelerated into a gushing stream, and the final parts are now in place. This represents a huge ...
How to start using registries with vcpkg
How to start using registries with vcpkg
For many users of vcpkg, the built-in repository of packages is completely sufficient. If you only need public, non-experimental libraries, the default vcpkg registry is completely fine. However, once you go outside of this world - once you have company-internal libraries, or you want to use experimental libraries, the recommended solution is ...
All vcpkg enterprise features now generally available: versioning, binary caching, manifests and registries
All vcpkg enterprise features now generally available: versioning, binary caching, manifests and registries
We are announcing today that all major vcpkg enterprise features are no longer experimental. The latest vcpkg release makes versioning, binary caching, manifests and registries generally available to any developer, team or enterprise. We have steadily been adding to vcpkg over the years. What started as a small open source project to ...
Microsoft C++ Code Analysis supports SARIF 2.1
Microsoft C++ Code Analysis supports SARIF 2.1
Starting with Visual Studio 16.8, MSVC Code Analysis officially supports SARIF 2.1.0 standard. SARIF is an industry standard for representing static analysis logs and we've been one of the earliest collaborators with the SARIF Technical Committee. Behind the scenes, analysis log files in the SARIF format powers Visual Studio IDE to ...
OpenMP Updates and Fixes for C++ in Visual Studio 2019 version 16.10
OpenMP Updates and Fixes for C++ in Visual Studio 2019 version 16.10
In our previous blog post about improved OpenMP support in Visual Studio, we announced the addition of the -openmp:llvm switch in Visual Studio 2019 version 16.9 to enable compiled programs to target LLVM’s OpenMP runtime library for the x64 architecture. This switch supports all the OpenMP 2.0 directives that -openmp supports, as well as ...
New Static Analysis Rule for Bounds Checking
New Static Analysis Rule for Bounds Checking
We have added a new experimental static analysis rule in Visual Studio 16.10 version Preview 3 - C26458, WARNING_PATH_SENSITIVE_USE_GSL_AT. The new warning is a more precise and less noisy version of warning C26446, WARNING_USE_GSL_AT. Both warnings analyse standard containers for unchecked element access and they both share the warning ...