fork download
  1. #include<utility>
  2. using namespace std;
  3.  
  4. struct X {
  5. X() {}
  6. X(X&&) { }
  7. };
  8. X global_m;
  9.  
  10. struct Converts {
  11. operator X&& () const { return std::move(global_m); }
  12. };
  13.  
  14. int main() {
  15. //bar ( Converts{} );
  16. X x1 { Converts{}.operator struct X&& () }; // works.
  17. X m2 { Converts{} }; // error: "candidate constructor not viable: no known conversion from 'Converts' to 'X &&' for 1st argument"
  18. }
  19.  
Success #stdin #stdout 0s 3292KB
stdin
Standard input is empty
stdout
Standard output is empty