Summary
This episode explores a confusing aspect of C++ move semantics: how defining a custom destructor silently disables move operations without making them unavailable. Jason demonstrates that while types with user-defined destructors still report as is_move_constructible, they actually use copy constructors when moved. Through assembly inspection with a non-trivial contained class, he shows that moving an object with a user-defined destructor results in a call to the copy constructor, not the move constructor.
Related C++ Standard Sections
This episode covers topics found in these sections of the C++ standard:
-
[concept.destructible]63% match