C++ Class Natures in Their Canonical Form and How to Find Them
summary
Categorizes C++ classes into four concrete natures — value types, polymorphic types, designating types, and managing types — and shows how each nature dictates which special members to declare, default, delete, or implement. Demonstrates the surprising trick that deleting the move assignment suppresses generated copy/move operations to make polymorphic bases non‑copyable, explains the Rule of DesDeMovA, and gives concrete patterns (unique manager move/state, scope guard destructor, span/string_view contagion) with slides and code on the conference GitHub.
AI-written summary · about
chapters (10)
- 0:00Introduction to canonical forms
- 8:56Class natures explained
- 16:56Managing types and their dangers
- 26:20Canonical forms for value types
- 30:46Polymorphic types and inheritance
- 34:18Rule of destiny for base classes
- 40:52Designating types and dangling references
- 45:58Managers as value types
- 55:01Summary of special member functions
- 59:48Q&A and legacy code advice








