class To{}; #include class From{ public: /* This will cause compilation error under Clang (3.5) with c++11 standard */ operator const To() { return To(); } /* Any one of below works fine */ //explicit operator const To() { return To(); } //operator To() { return To(); } //operator To &&() { return std::move(To()); } }; int main() { From f; To t (f); return 0; }