Move semantics for a conversion operator
c++, c++11, move-semantics
Solution
The syntax for that would be something like this:
class wrap {
public:
operator obj() const & { ... } //Copy from me.
operator obj() && { ... } //Move from me.
private:
obj data_;
};
The first version will be called when the second version cannot be called (ie: the `wrap` instance being converted is not a temporary or there is no explicit use of `std::move`).
Note that Visual Studio didn't implement this aspect of r-value references in VS11.
Problem
What's the syntax for a movable conversion operator? I have a wrapper that wraps around `obj`, which has an `obj` conversion operator: ``` class wrap { public: operator obj() { ... } private: obj data_; }; ``` How can I find out whether `data_` should be copied or moved?