fork download
  1. #include <iostream>
  2.  
  3. class B //a move only type
  4. {
  5. B( const B& )=delete;
  6. B& operator=( const B& ) = delete;
  7. public:
  8. B( B&& )
  9. {
  10. std::cout << "B&&\n";
  11. }
  12.  
  13. B& operator=( B&& )
  14. {
  15. std::cout << "B=\n";
  16. return *this;
  17. }
  18. B(){ std::cout << "B()\n"; }
  19. };
  20.  
  21. struct error //the other parts are stripped of for simplicity.
  22. {
  23. B get()
  24. {
  25. return std::move(b);
  26. }
  27. private :
  28. B b{};// B is a move only type.
  29. };
  30.  
  31. int main()
  32. {
  33. error er{};
  34. er.get();
  35. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
B()
B&&