Lightning Talk: Required Field for Designated Initialization
summary
Shows a concrete pattern: wrap mandatory members in a required_field wrapper that has a single-argument constructor so aggregates still initialize but missing values fail to compile. Explains why default member initializers or ordinary constructors don't solve the Vulkan-style s-type and pipeline-layout requirement: defaults hide missing crucial pointers, constructors break aggregate initialization. Demonstrates that client code needs no changes and that compile-time enforcement replaces runtime undefined behavior.
AI-written summary · about
chapters (5)
- 0:00Start
- 1:01You can't force people to use brace initializations
- 1:56In C++11 we get default member initializer
- 3:00Constructor?
- 3:26A required field class
related talks
01h 02mBack to Basics: Initialization in C++
05mLightning Talk: Effective APIs in Practice in C++
03mLightning Talk: Dependency Injection for Modern C++
06mLightning Talk: Cute Approach for Polymorphism in C++
57mDesign Patterns - The Most Common Misconceptions (2 of N)
31mBuild Confidently: How @Catch and Error Handling Pave Way in Field Nullability
52mJavaScript Design Patterns
25mLeveraging (algebraic data) types to make your UI rock solid
