A Tour of C++ Recognised User Type Categories
summary
Concrete rules and gotchas for when user types actually gain special behaviour across C++ versions: precise definitions and examples for aggregate types, standard-layout and trivially copyable types, what permits safe memcpy and when it is UB, how unions enable reading a common initial sequence, what implicit-lifetime types change for placement/newless initialization, no_unique_address effects, structural types as non-type template parameters, and where wording changed (examples and compiler/trait implications are shown).
AI-written summary · about
chapters (56)
- 0:00Introduction
- 0:40Why am I here
- 1:12About the book
- 2:01Why we have special types
- 2:57C Object Model
- 3:49Object Representation
- 4:09Types
- 4:38Objects
- 5:16Aggregates
- 6:14Aggregate Initialization
- 7:05Designated Initialization
- 8:07Question of Aggregate
- 8:33Definition of Aggregate
- 12:09Library Trade
- 13:31Limitations
- 14:30Standard Layout
- 14:54Standard Access Control
- 16:25Base Classes
- 16:37Unique No Unique Address
- 17:27Structure
- 18:04Classes
- 19:05Common Initial Sequence
- 21:07STD Standard Layout
- 21:42Useful and Not Useful
- 22:16Copyable Types
- 22:55CopyMove
- 23:15Destruct
- 23:33Copyable
- 25:38Undefined
- 26:04Copy
- 26:53trivial
- 27:21for nothing
- 27:37trivial types
- 28:11pod types
- 29:03original definition
- 29:52trivial standard layout
- 30:20library
- 30:36literal types
- 30:49compile time
- 32:01constant expression
- 33:04compiletime
- 35:28Closure
- 35:56Destructor
- 36:37Trait
- 38:09Structural
- 39:54Implicit Lifetime Types
- 40:04Object Lifetime
- 40:20undefined Behavior
- 40:52Array
- 41:07Arithmetic
- 42:40Aggregate Classes
- 43:32ObjectLifetime
- 43:54Arrays
- 44:12Implicit Lifetime
- 45:13Conclusion
- 46:23Can they be implemented in C








