Is the move constructor called after invoking a conversion function?

Viewed 793

Consider this example:

struct T { };

struct S {
    operator T();
};

S s;
T t = s;

[dcl.init] will take us to [over.match.copy] which will find the conversion function operator T(). But are we done at that point, or do we have to invoke T(T&& rhs), binding rhs to the return of operator T() via [dcl.init.ref]? Are there any differences with regards to the answer to this question between C++11 and C++1z?

1 Answers
Related