All sessions are pre-recorded and streamed with a live Q&A with the speaker.
What’s New In C++ 23
with Sy Brand
C++23 comes with a host of language and library features to simplify your code, make it more expressive, and give you more power to play with. I’ll walk you through as many features as I reasonably can, showing you how they can work together and what benefits you’ll gain from upgrading when the time comes.
Cute C++ Tricks, Part 2 of N: More code you should learn from and never write
with Daisy Hollman
Last year at Meeting C++, I gave a talk about “cute” snippets of counterintuitive C++ code that I’ve been posting to Twitter. I submitted an outline for that talk with about a dozen different tricks I wanted to talk about, but in the end I only had time to talk about less than half that many. In this talk, I will continue with my exploration of the dark and weird corners of C++ that, unfortunately, come up more often than we’d like. The reality of programming in C++ is that any intermediate or advanced programmer will have to understand many of these corner cases (in real code!) at some point in their career, and my goal in this talk is to continue to present these corners of the language in pithy, memorable, “cute” snippets. Along the way, hopefully we can all have a bit of fun laughing at the weird and wacky things you can do while programming in a language with 40 years of backwards compatibility.
Tired of keeping IAR or Keil open on one screen to build/debug and VS Code on another to get decent IntelliSense for your firmware project? Learn about new embedded capabilities, including support for peripheral registers and RTOS objects in Visual Studio and VS Code. As a bonus, we’ll show you a new way to keep track of your toolset dependencies in a manifest that can be restored in a single command.
Everything I learned about static analysis and program safety in C++
with Sunny Chatterjee
Did you know that 70% of serious security bugs are a result of memory safety issues? In this talk, I will share how you could leverage language rules and static analysis principles to write safer C++ programs.
Modern analysis tools have come a long way since their inception and are much more powerful than traditional Lint-style checks. They use powerful techniques like theorem solvers to simple heuristics mimicking developer’s reasoning and can find deep semantic errors in programs. Furthermore, these tools can take advantage of information available in types and type extensions in the language to bridge the gap across function boundaries, without incurring the performance penalties of running global analyses.
Over the years, MSVC code analysis has become an indispensable part of the “shift left” experience to drive program safety at Microsoft. Throughout the talk, I will share my experience in developing and running these tools on large production codebases over the last decade and how they evolved over time. All the checks in the demo are available for free in the community edition of Visual Studio and as security actions in GitHub.
Persistent Representation of C++ for Fun and Profit
with Gabriel Dos Reis
Your typical compiler works hard to understand your C++ programs so it can generate good, efficient executables for them. With C++20 and up, thanks to Modules, the compiler is asked to transfer, between source files, semantic knowledge acquired during the compilation process. Why is that? How is it done? What can you do with that knowledge from the compiler? Come and find out.
Dr. Daisy S. Hollman began working with the C++ standards committee in 2016, where she has made contributions to a wide range of library and language features, including proposals related to executors, atomics, generic programming, futures, and multidimensional arrays. Since receiving her Ph.D. in Quantum Chemistry in 2013, her research has focussed primarily on parallel and concurrent programming models, though a broader focus on general accessibility of complex abstractions has become her focus in more recent years. She currently works on C++ language and library design at Google, where she continues to focus on providing broad accessibility of programming models and abstractions, with a particular focus on design for diversity and inclusivity.
Principle Program Manager @ Microsoft
Marc Goodner is a program manager on the C++ team focused on improving the experience for embedded developers and Azure Sphere in Visual Studio and VS Code.
Principle Software Engineering Manager @ Microsoft
Sunny leads a team responsible for developing the core C++ static analysis engines in Visual Studio productivity experience as well as the traditional security tooling scenarios used widely within Microsoft. He has many years of experience in static analysis and enjoys delivering new productivity benefits to customers. His current focus is to lead efforts towards making C++ a safer systems programming language.
Gabriel Dos Reis
Principle Software Engineer @ Microsoft
Gabriel Dos Reis is a Principal Software Engineer at Microsoft, where he works in the area of large scale software construction, development tools, and programming techniques. He is an architect for Visual C++. He is also a researcher, and a longtime member of the C++ community, author of numerous extensions to support large scale programming, compile-time and generic programming. His research interests include programming tools for dependable software.
C++ Developer Advocate @ Microsoft
Sy Brand is Microsoft’s C++ Developer Advocate. Their background is in compilers and debuggers for embedded accelerators, but they’re also interested in generic library design, metaprogramming, functional-style C++, undefined behaviour, and making our communities more welcoming and inclusive.