Hacker News new | ask | show | jobs
by jeremyjh 3006 days ago
I think he just means the move constructor is not guaranteed to move anything. It is only expected to.
1 comments

The rule of three/five is probably the most tedious thing to deal with in modern C++. Assuming all your member variables are C++ types it's not TERRIBLE, you should be able to handle everything in the initialization list (using std::move for the move constructor) - but it's still easy to forget to initialize a member.

This is one area where Rust really makes life much easier.

Use rule of zero as far as possible. All the tedious stuff that comes with rule of five should be isolated to very few components in your code.