One of the pre-Urbana papers is a little near and dear to my heart. That paper is N4158 - Destructive Move (Rev 1) by Pablo Halpern.
The paper is a much better solution to most of the zero-trivial idea I posted some time ago. Pablo’s approach is more generic and reusable.
The only thing Pablo’s approach doesn’t deal with is the idea that zero-initialized memory (which is often cheap to obtain in bulk) can replace initialization for otherwise non-trivially-constructible types like std::unique_ptr
. This can be treated as a separate issue, though.