I completely fail to see what is "explicit" about any of this. It's
the polar opposite of explicit.
Hear, hear; +1 what Ville said.
Also, Ed, IIRC ;) you have an extremely active proposal for
void SetVector(vector<int>&& arg) {
vec = reloc arg; // ta-da
}
template<class T>
void SetVector(T&& arg) {
vec = reloc arg; // ta-da
}
to do exactly what OP wanted, and (1) with less syntax, (2) with the sigil `reloc` appearing at the point of the move/forward/relocation, instead of spookily at a distance. I don't see why you in particular would want this kind of implicit double-move-bug factory in addition to that other safer mechanism.