Abstraction Patterns for Cross Platform Development Using C++
Talkat CppCon 2023 · on Friday, 2023-10-06· at 10:30· Cottonwood 2/3, 6700 North Gaylord Rockies Boulevard·
summary
Compares concrete abstraction techniques and shows working examples: uses Vulkan vs DirectX12 backends, demonstrates preprocessor macros, runtime polymorphism, and a pimpl + handles approach, then solves ODR by selecting per-platform CPPs with a metabuild system (Cake/CMake style) and finally packages implementations as shared libraries loaded from a JSON config. Claims macros are fragile, virtual calls cost a vtable lookup, pimpl avoids header leaks but breaks ODR, and the demo successfully launches windows for DX12 or Vulkan by loading the chosen DLL at runtime.
AI-written summary · about
chapters (10)
- 0:00Introduction and background
- 4:03Overview of topics
- 6:24Defining cross-platform
- 9:29Why use abstraction layers
- 12:07Preprocessor macros
- 19:45Runtime polymorphism
- 29:35Pimpl and handles
- 40:27Meta-build systems
- 47:13Runtime implementation swapping
- 58:00Tips, tricks, and conclusion
related talks
52mCross plattform C++ development is challenging
01h 18mMeta Polymorphism
55mC++ 20 Innovations: High-Performance Cross-Platform Architecture in C++
52mBuilding Bridges: C++ Interop, Foreign Function Interfaces & ABI
37mC++ for multi-accelerator, multi-vendor systems
01h 03mWriting sustainable software. The how and the what!
01h 03mUnlocking the value of C++20
01h 00mHow to call C libraries from C++
