fork(1) download
  1.  
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. struct A {
  6. A() { log("construct"); }
  7. A(A const&) { log("copy-construct"); }
  8. A(A&&) noexcept { log("move-construct"); }
  9.  
  10. A& operator=(A const&) noexcept { log("copy-assign"); return *this; }
  11. A& operator=(A&&) noexcept { log("move-assign"); return *this; }
  12.  
  13. static void log(char const * msg) {
  14. std::cout << msg << "\n";
  15. }
  16. };
  17.  
  18. int main() {
  19. A x, y;
  20. x = std::move_if_noexcept(y);
  21.  
  22. return 0;
  23. }
Success #stdin #stdout 0s 3096KB
stdin
Standard input is empty
stdout
construct
construct
move-assign