    #include <iostream>
 
    struct A {
      const char* name;
      A( const char* name_ ):name(name_) { std::cout << "created " << name << "\n"; }
      //A(A const&){ std::cout << "copied " << name << "\n"; }
      A(A &&){ std::cout << "moved " << name << "\n"; }
    };
 
    A f() {
      std::cout << "start of f()\n";
      A const r("bob");
      std::cout << "body of f()\n";
      return r;
    }
 
    int main() {
      A x = f();
    }
