
11 Sep
2008
11 Sep
'08
7:34 a.m.
Giovanni Piero Deretta wrote:
If you do not want to deal with move emulation (which I've found very brittle in complex expressions), a simple way to to gain the advantage of T::operator=(T rhs) even when assigning from lvalues is something like:
templateT destructive_copy(T& x) { using std::swap; T result; swap(result, x); return x; }
which relies on NRVO to eliminate expensive copies:
Shouldn't the last statement be return result; instead? Or maybe I am missing something? Best Regards, Gevorg