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++.
Daniela has a degree in electrical engineering and has been working for more than 30 years in small innovative companies in the field of software and hardware development. She has spent her youth with exploring the very first microprocessors since the late 70’s, and has been creating software professionally for 40 years now. After a long time using many different programming languages, C++ has now been the exclusive workhorse throughout the last two decades. With great pleasure Daniela is now also a member of the ISO C++ committee. For the better part of her career, the domain was applied digital signal processing (medicine, metrology, reconnaissance), but during the last decade the focus shifted onto special engineering in the field of industrial non-destructive testing of semi-finished and finished steel products using ultrasound. Besides that, she loves to relax with hard metal and soft cheese, hot curries and cool jazz.
Program Manager @Microsoft
Erika works on the Visual C++ Team at Microsoft. She likes math and mystery novels. She is currently working on developer tools to support C++ cross-platform development.
Program Manager @Microsoft
Augustin is a Program Manager on the C++ Product Team at Microsoft working on vcpkg and Visual Studio.
Principal 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
Principal Software Engineer @Microsoft
Gabriel Dos Reis is an architect at Microsoft, where he works in the area of large scale software construction, developer tools, systems programming techniques, and safety. He is also a researcher, and a longtime member of the C++ community, author of numerous extensions to support compile-time programming, generic programming, and programming in the large. His research interests include programming tools for dependable software.
Software Engineer @Kitware
Kyle Edwards joined Kitware in December 2017 as part of the Software Process team, in order to further his lifelong passion for software development. His responsibilities at Kitware include helping to maintain the CMake buildsystem, and assisting the vision team with software development. Kyle specializes in hardware, systems programming, and assembly language. Prior to working at Kitware, he worked at BullEx as an R&D software engineer, where he helped develop patented digital fire training technology for firefighters. Later, he worked at Integra Optics as a software developer.
Kyle is currently attending SUNY Albany for a degree in computer science.
Download our event wallpapers for free!
We made some wallpapers specially for the event. Here’s a taste, download the rest below.