I think this is a nice macro that can be used to disable implicit copies, but allow moves.
This is also required in the context of C++20 to re-enable aggregate initialization, which have been disabled in commit 213e98ca826eb25c7d6e26729c6a3de6521614ba. This pull request is inspired by section 3.3 of the paper http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1008r1.pdf