CppCon 2022 Schedule
Scheduled Classes Beta Schedule
Sunday 11th September
1015
1015
1030
1030
1100
1100
1130
1130
1200
1200
1230
1230
1300
1300
1330
1330
1400
1400
1430
1430
1500
1500
1530
1530
1600
1600
1630
1630
1700
1700
1730
1730
1800
1800
1830
1830
1900
1900
1930
1930
2000
2000
2030
2030
2100
2100
2130
2130
2200
2200
Monday 12th September
0645
0645
Online Access Only
C++20’s Coroutines for Beginners
Concurrency
Online Access Only
The Imperatives Must Go
Algorithms & Data Structures
Online Access Only
How much compilation speedup we will get from C++ Modules: A Case Study
Debugging & Logging & Testing
Onsite & Online Access
C++ in Constrained Environments
Future of C++
Onsite & Online Access
Back To Basics Track Kickoff
Education/Coaching
Break
Break
Templates & Metaprogramming
Debugging & Logging & Testing
Online Access Only
Functional Composable Operations with Unix-Style Pipes in C++
Algorithms & Data Structures
Onsite Access Only
Marc Gregoire book signing (Rockies Square)
Education/Coaching
Break
Break
Software Design
Gather Town
Onsite & Online Access
Software Design Track Kickoff
Software Design
Onsite & Online Access
Tooling Track Kickoff
Debugging & Logging & Testing
Onsite & Online Access
Scientific Computing Track Kickoff
Scientific Computing
Debugging & Logging & Testing
Onsite & Online Access
import CMake, CMake and C++20 Modules
Debugging & Logging & Testing
Onsite & Online Access
Help! My Codebase has 5 JSON Libraries
How Generic Programming Came to the Rescue
Templates & Metaprogramming
Online Access Only
Going Beyond Build Distribution
Using Incredibuild to Accelerate Static Code Analysis and Builds
Debugging & Logging & Testing
Break
Break
Onsite & Online Access
C++ Lambda Idioms
Idioms & Techniques
Onsite & Online Access
Understanding Allocator Impact on Runtime Performance
Algorithms & Data Structures
Onsite & Online Access
Concurrency TS 2 Use Cases and Future Direction
Concurrency
Onsite & Online Access
High Speed Query Execution with Accelerators and C++
Templates & Metaprogramming
Onsite Access Only
Committee Fireside Chat
Education/Coaching
0700
0700
0730
0730
0800
0800
0830
0830
0900
0900
0930
0930
1000
1000
1030
1030
1100
1100
1130
1130
1200
1200
1230
1230
1300
1300
1330
1330
1400
1400
1430
1430
1500
1500
1530
1530
1600
1600
1630
1630
1700
1700
1730
1730
1800
1800
1830
1830
1900
1900
1930
1930
2000
2000
2030
2030
2100
2100
2130
2130
2200
2200
Tuesday 13th September
0530
0530
Online Access Only
REPLAY: Committee Fireside Chat
Education/Coaching
Online Access Only
The Hidden Performance Price of Virtual Functions
Software Design
Idioms & Techniques
Onsite & Online Access
Case Study
Purging Undefined Behavior and Intel Assumptions in a Legacy Codebase
Interface Design & Portability
Onsite & Online Access
High-performance Load-time Implementation Selection
Idioms & Techniques
Onsite & Online Access
C++ for Enterprise Applications
Templates & Metaprogramming
Online Access Only
Refresher on Containers, Algorithms and Performance
Algorithms & Data Structures
Onsite & Online Access
Contemporary C++ in Action
Future of C++
Onsite Access Only
J.Lakos, R. Khlebnikov, V. Romeo book signing (Rockies Square)
Education/Coaching
Debugging & Logging & Testing
Gather Town
General C++
Gather Town
Lunch
Lunch
Onsite & Online Access
Using Modern C++ to Eliminate Virtual Functions
Software Design
Onsite & Online Access
Graph Algorithms and Data Structures in C++20
Scientific Computing
Onsite & Online Access
The Case For a Standardized Package Description Format
Debugging & Logging & Testing
Online Access Only
Scalable and Low Latency Lock-free Data Structures
Concurrency
Onsite & Online Access
A Lock-Free Atomic shared_ptr
Concurrency
Onsite & Online Access
C++ Coding with Neovim
Debugging & Logging & Testing
Break
Break
Onsite & Online Access
An Introduction to Multithreading in C++20
Concurrency
Onsite & Online Access
Embracing Trailing Return Types and `auto` Return *Safely*
Idioms & Techniques
Onsite & Online Access
Managing External API’s in Enterprise systems
Interface Design & Portability
0530
0530
0600
0600
0630
0630
0700
0700
0730
0730
0800
0800
0830
0830
0900
0900
0930
0930
1000
1000
1030
1030
1100
1100
1130
1130
1200
1200
1230
1230
1300
1300
1330
1330
1400
1400
1430
1430
1500
1500
1530
1530
1600
1600
1630
1630
1700
1700
1730
1730
1800
1800
1830
1830
1900
1900
1930
1930
2000
2000
2030
2030
2100
2100
2130
2130
2200
2200
Wednesday 14th September
0600
0600
Online Access Only
Your Performance Todo List
The Most Important Optimization Opportunities and Pitfalls to Consider
Idioms & Techniques
Online Access Only
Introduction to Hardware Efficiency
Embedded
Onsite & Online Access
GPU Performance Portability Using Standard C++ with SYCL
Scientific Computing
Onsite & Online Access
Optimizing A String Class for Computer Graphics
Algorithms & Data Structures
Online Access Only
Breaking Enigma With the Power of Modern C++
Scientific Computing
Online Access Only
C++ in the World of Embedded Systems
Embedded
Onsite & Online Access
Using C++14 in an Embedded “SuperLoop” Firmware
Embedded
Software Design
Gather Town
Education/Coaching
Gather Town
Lunch
Lunch
Onsite & Online Access
Your Compiler Understands It, But Does Anyone Else?
10 Tips for Cleaner C++ 20 Code
Software Design
Onsite & Online Access
Killing C++ Serialization Overhead & Complexity
Embedded
Onsite & Online Access
Fast, High-Quality Pseudo-Random Numbers for Non-Cryptographers
Scientific Computing
Online Access Only
Modern C++ to Impress Your Embedded Dev Friends
C++ patterns to make embedded programming more productive
Embedded
Onsite & Online Access
What Can Compiler Benchmarks Tell Us About Metaprogramming Implementation Strategies
Templates & Metaprogramming
Break
Break
Onsite & Online Access
-memory-safe C++
Debugging & Logging & Testing
Onsite & Online Access
A Pattern Language for Expressing Concurrency
Concurrency
Onsite & Online Access
What Is an Image, Anyway
Math & Numbers
0600
0600
0630
0630
0700
0700
0730
0730
0800
0800
0830
0830
0900
0900
0930
0930
1000
1000
1030
1030
1100
1100
1130
1130
1200
1200
1230
1230
1300
1300
1330
1330
1400
1400
1430
1430
1500
1500
1530
1530
1600
1600
1630
1630
1700
1700
1730
1730
1800
1800
1830
1830
1900
1900
1930
1930
2000
2000
Thursday 15th September
0600
0600
General C++
Online Access Only
GPU Accelerated Computing and Optimizations on Cross-Vendor Graphics Cards with Vulkan & Kompute
Scientific Computing
Online Access Only
Optimizing Binary Search
Algorithms & Data Structures
Online Access Only
What I Learned From Sockets
Applying the Unix Readiness Model When Composing Concurrent Operations in C++
Concurrency
Onsite & Online Access
C++ Coroutines, from Scratch
Concurrency
Onsite & Online Access
Reviewing Beginners’ Code
Education/Coaching
Software Design
Break
Break
Debugging & Logging & Testing
Online Access Only
Fast C++ by using SIMD Types with Generic Lambdas and Filters
Scientific Computing
Online Access Only
What’s New for You in Visual Studio Code
Clang-Tidy, makefile, CMake, GitHub and More
Debugging & Logging & Testing
Online Access Only
Overcoming Embedded Development Tooling Challenges
Embedded
Onsite & Online Access
How C++23 Changes the Way We Write Code
Software Design
Embedded
Gather Town
Scientific Computing
Gather Town
Lunch
Lunch
Onsite & Online Access
Using Modern C++ to Revive an Old Design
Software Design
Onsite & Online Access
Simulating Low-Level Hardware Devices
Embedded
Online Access Only
Architecting Multithreaded Robotics Applications in C++
Concurrency
Onsite & Online Access
Reproducible Developer Environments
Debugging & Logging & Testing
Onsite & Online Access
The Surprising Complexity of Formatting Ranges
Debugging & Logging & Testing
Break
Break
Onsite & Online Access
How to Use Dependency Injection to Write Maintainable Software
Debugging & Logging & Testing
Onsite & Online Access
The Observer Design Pattern
Software Design
Onsite & Online Access
Smarter Atomic Smart Pointers
Efficient Concurrent Memory Management for Everybody
Concurrency
Onsite & Online AccessLimited Onsite Audience
Cross-Building Strategies in the Age of C++ Package Managers
Debugging & Logging & Testing
Social/Registration
0600
0600
0630
0630
0700
0700
0730
0730
0800
0800
0830
0830
0900
0900
0930
0930
1000
1000
1030
1030
1100
1100
1130
1130
1200
1200
1230
1230
1300
1300
1330
1330
1400
1400
1430
1430
1500
1500
1530
1530
1600
1600
1630
1630
1700
1700
1730
1730
1800
1800
1830
1830
1900
1900
1930
1930
2000
2000
2030
2030
2100
2100
2130
2130
2200
2200
Friday 16th September
0600
0600
Future of C++
Debugging & Logging & Testing
Onsite & Online Access
Class Template Argument Deduction
History, How to Use it, and How to Enable it for Your Classes
Templates & Metaprogramming
Onsite & Online Access
C++20’s [[likely]] Attribute
Optimizations, Pessimizations, and [[unlikely]] Consequences
Idioms & Techniques
Debugging & Logging & Testing
Break
Break
Idioms & Techniques
Onsite & Online Access
A Success Story in Implementing Understandable World Class Hash Tables
Algorithms & Data Structures
Onsite & Online Access
Val Wants To Be Your Friend
The design of a safe, fast, and simple programming language
Value Semantics
Debugging & Logging & Testing
Gather Town
Concurrency
Lunch
Lunch
Onsite & Online Access
Rules for Radical Engineers
Make a Difference in Your Code, Team, and Organization
Education/Coaching
Onsite & Online Access
Algorithmic Complexity, Data Locality, Parallelism, and Compiler Optimizations, Seasoned with Some Concurrency
A Deep Dive into Performance
Scientific Computing
Onsite & Online Access
Parallelism Safety-Critical Guidelines for C++
Embedded
Templates & Metaprogramming
Onsite & Online Access
Structured Networking
Networking & Web
Onsite & Online Access
A Tour of C++ Recognised User Type Categories
Value Semantics
Onsite & Online Access
Using std::chrono Calendar Dates for Finance
Math & Numbers
Scientific Computing