Pure Virtual C++ 2021 - Visual Studio
Pure Virtual C++ 20212021-05-03T08:30:02-07:00
Pure Virtual Cplusplus logo

3rd May 2021 14:30-17:30 UTC

A free one-day virtual conference for the whole C++ community.

All sessions will be streamed to Learn TV with a live Q&A session. Sessions will be available to view on Learn TV and YouTube after the event has finished.

Pure Virtual C++ is run under the Berlin Code of Conduct .


Pre-Conference Content

video screenshot

Watch our other pre-conference videos in the Pure Virtual C++ 2021 playlist

Program Schedule

All sessions are pre-recorded and streamed with a live Q&A with the speaker.



Visibility, Reachability, Linkage – The Three Secret Spices of C++ Modules

with Daniela Engert

Modules are probably the most impactful and most transformative major recent addition to the C++ language. From a user perspective, Modules are conceptually simple and the idea is easy to grasp. And with the C++20 ecosystem maturing, using Modules and adopting them into every-day programming is both feasible and advantageous. But what is the secret sauce of Modules, that makes them so tasty? There are three pieces in the C++ language puzzle that exist since the inception of the language but are mostly irrelevant in typical usage of ‘classical’ C++ and hardly any programmer needs to know much about them. No fear – this hasn’t changed, no old horse is required to learn new tricks to take advantage of the power of Modules. But if you are interested in how three little (key-)words are able to unleash this power, you might feel the urge to understand what visibility of names, reachability of declarations and their semantic properties, and (language) linkage actually mean in the world of Modules.

  • give a short recap of what Modules are
  • explore the concept of visibility
  • dive into declarations, semantic properties, and the difference between visibility and reachability
  • look at the so-called language linkage and linker symbols


An Introduction to CMakePresets.json

with Erika Sweet and Kyle Edwards

CMakePresets.json was added to CMake in CMake 3.19/3.20 and allows users to share common configure, build, and test options with others. Join representatives from Microsoft and Kitware as they discuss CMakePresets.json and the problems they hope it will solve. They will also demo CMakePresets.json support in Visual Studio, in Visual Studio Code, and from the CLI.


Manage code dependencies at work with new vcpkg features

with Augustin Popa

vcpkg is an open source C/C++ dependency manager for Windows, Linux, and macOS. It is capable of building libraries from source, on demand, using build recipes. It comes with a curated, tested catalog supporting over 1500 open source libraries, though users can define their own recipes and bring custom libraries to their vcpkg workflow as well. The team recently expanded vcpkg with a few highly requested features:

  • Binary caching:Compile your libraries once with your preferred build configuration, cache the binaries in a feed, then just download the prebuilt binaries in the future to save time.
  • Manifests: Declare your dependencies in a file that lives with your code repo, so that they can be installed automatically as your build system prepares a build. Works for MSBuild and CMake projects.
  • Versioning: With manifests, you can restrict the versions of your dependencies to your team’s preference, and upgrade versions with more control.
  • Registries: Define your own build recipes and make your own custom libraries available for installation through vcpkg. This works separately from the open source catalog – you do not have to make your libraries public to build them with vcpkg.

This talk will give you a practical overview of how to use vcpkg at work for professional projects using these new features. Whether this is your first time hearing about vcpkg, or if you used it in the past and are curious about these new workflows, this talk is for you.


Code Analysis: Empowering developers to write performant, reliable, and safe C++

with Sunny Chatterjee

Although C++ is a high performing programming language, customers and security researchers have increasingly asked for stronger safety and correctness guarantees in their code. In this talk, we will explore how static and runtime analysis (AddressSanitizer) tooling can be used to achieve high correctness and catch memory security issues before they go into production – without compromising on the performance and memory efficiency of C++. We will demonstrate how modern analysis tools are much more powerful than tradition Lint-style checks and can be used to find deep semantic errors in code, empowering developers write performant, reliable, and safe programs. We will share our experience in developing and running some of these checks on large commercial codebases. All the checks in the demo will be available in the community edition of Visual Studio for you to try them out!


C++ Modules: Year 2021

with Gabriel Dos Reis

In the year 2021, with toolset support for C++ Modules ready for production use, what can we expect? This talk presents the lay of the land, and offers a window into the future of practical semantics tooling of C++.

Our Speakers

Download our event wallpapers for free!

We made some wallpapers specially for the event. Here’s a taste, download the rest below.

 Visual Studio Code bannerVisual Studio banner