From Jason Turner
Watch on YouTube

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.

Resources

Tags