http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57064
--- Comment #16 from Thiago Macieira <thiago at kde dot org> 2013-04-26 13:45:35 UTC --- Thanks for the hint. However, returning an rvalue, even if moved-onto, will generate code for the destructor. It's not a matter of efficiency, just of code size. Anyway, I'll do some benchmarks, after I figure out how to work around the binary compatibility break imposed by having the & in the function that already existed.