
Rob Stewart
writes: ... However, for non-movable types, the fallback is to copy anyway, so both should be moved. ... ... if value_or() moves/destroys the string inside "res", ... then "res" is not usable from here downwards ... it's a problem, isn't it?
I should have been clearer. If the argument is movable, move it. If not, don't. That means overloading based upon rvalue references vs. lvalue vs. small, by-value args. I was just showing the one case.
Yes, now that you mention moveable-based overloading I understand. Sorry for being thick... If "convert" gets go-ahead, I'll certainly need help with C++11 stuff... as from what I gather (in particular Meyer's ruminations about universal references, etc) it sounds outright complicated. Damn, gmane, forces me to trim almost all quoted text...