June 6, 2023, 1:00 PM - 4:00 PM UTC

Pure Virtual C++ 2023

Join us for a free, three-hour virtual conference for the whole C++ community.

Pre-Conference Videos

All caught up on the on-demand sessions? Don't forget to check out these exclusive videos and demos!

Session Abstracts

C++ Compiler Errors for Humans (Sy Brand)

In every ISO C++ survey so far, compiler errors have been one of the top answers for "what is one thing you would change about C++ if you had a magic wand?" We may not have a magic wand, but maybe we can still improve on the state of diagnostics.

In this talk Sy will discuss the characteristics of diagnostics which make them better—based on industry tools and academic research—and show what our team has been working on to improve our errors in MSVC and the Visual Studio IDE.

Address Sanitizer continue_on_error (Jim Radigan)

C++ memory safety errors continue to be a top concern. In this talk we describe continue_on_error which is new technology implemented in the Address Sanitizer runtime. The compiler and new runtime allow a developer to find a well-defined set of (possibly hidden) memory safety errors, has zero false positives, and is easily added to existing test assets. This creates a new checked-build for C and C++.

This new functionality allows an application to continue running while reporting memory safety errors to a log file or the command line. The existing Address Sanitizer runtime will report the first memory error encountered and then kill your application. When enabled, the new continue_on_error feature, will automatically return control back to the application after reporting each memory safety error. With continue_on_error you can compile and deploy an existing application in limited production to find memory safety issues or leaks while running for days.

If you compile with one extra flag (-fsanitize=address) and set one environment variable (set ASAN_OPTIONS=continue_on_error=1), you get a turnkey solution for immediately improving correctness and security. You can still pass all your existing tests but also uncover hidden memory safety errors in your passing tests. This should be used to introduce a new “shipping gate. It can be entirely based on your existing test assets. The developer gets a simple (pass/fail) gate for shipping any C or C++ on Windows. Internally we have found that using this technology will significantly reduce memory safety errors. If all your existing tests pass but this new feature reports a memory safety error or a leak, you should not ship your new code or integrate it into a parent branch.

We describe the technology, use demos to dive into important examples and discuss the 2021 CWE Top 25 Most Dangerous Software Weaknesses which helps to underscores the importance of using this new technology: A well defined shipping gate for C and C++.

Value-Oriented Programming (Tony Van Eerd)

OOP - Object-Oriented Programming - has been a stalwart technique of programming for decades, but lately there has been lots of talk about VOP - Value Oriented Programming. What is it? Why is it? As Inigo Montoya said, "Let me explain. No, there is too much. Let me sum up."

The goal here is, in a short time, to get a feel for Values vs Objects, and when and why you might choose one technique over the other.

Productive Cross-Platform and Game Development in Visual Studio (Sinem Akinci and David Li)

Visual Studio has a variety of rich integrations to support all different types of development. In this talk, we will show how to utilize these tools to maximize your productivity when targeting all different sorts of applications. See how you can use those tools to work on a game and discover all the important Unreal Engine Integrations in the latest version of Visual Studio. Sinem and David will focus on cross-platform tooling as well as productivity enhancements in the IDE.

Build Time Reflection with C++ in Year 2023 (Gabriel Dos Reis)

As a C++ programmer, have you been wondering when you could finally get reflection functionalities in your hands to boost your productivity and to expand your innovative ideas? Come find out what you can accomplish, today, at build time with Modules and contemporary C++.

Our Speakers

  • Sinem Akinci

    Program Manager II

    Follow Sinem Akinci
  • Sy Brand

    C++ Developer Advocate

    Follow Sy Brand
  • Gabriel Dos Reis

    Principal Software Engineer, Visual C++

    Follow Gabriel Dos Reis
  • David Li

    Senior Program Manager

    Follow David Li
  • Jim Radigan

    Partner Software Architect, Visual C++

    Follow Jim Radigan
  • Tony Van Eerd

    Principal Software Developer, Christie Digital Systems

    Follow Tony Van Eerd

Frequently Asked Questions

Is there a cost to attend the event?

The event is free! You can join Learn Events anytime to stream content for free!

When does the event take place?

We will be streaming this live virtual event June 6 from 6:00 AM - 9:00 AM PT.

Where does the event take place?

This event is virtual! Join us and thousands of others to enjoy the experience from the comfort of your own home, office, or device.

Will this event be available on-demand?

Yes! You can stream our past events anytime! Visit Browse Events to stream anytime.

By registering, what communications will I receive?

Your privacy is important to us and we encourage you to review the Microsoft Privacy Statement for additional information.

Code of Conduct

We seek to provide a respectful, friendly, professional experience for everyone, regardless of gender, sexual orientation, physical appearance, disability, age, race or religion. We do not tolerate any behavior that is degrading to any gender, race, sexual orientation, or disability, or any behavior that would be deemed harassment or discrimination. Individuals are responsible for knowing and abiding by our standards and we encourage everyone to assist in creating a welcoming and safe environment. Additionally, we strive to treat our shared planet with the same amount of respect. Please report any questions, concerns, or disruptive activity or behavior to the organizing team, so that we can address the issue immediately.