fork(1) download
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. class A {
  5. public:
  6. A() { std::cout << "A()\n"; }
  7. A(const A&) { std::cout << "A(const A&)\n"; }
  8. A(A&&) { std::cout << "A(A&&)\n"; }
  9. };
  10.  
  11. class B {
  12. public:
  13. B(A a): a_(std::move(a)) { std::cout << "B(A a)\n"; }
  14.  
  15. // B(const A& a): a_(a) { std::cout << "B(const A& a)\n"; }
  16. // B(A&& a): a_(std::move(a)) { std::cout << "B(A&& a)\n"; }
  17. // B(A&& a): a_(std::forward<A>(a)) { std::cout << "B(A&& a)\n"; }
  18. private:
  19. A a_;
  20. };
  21.  
  22. int main() {
  23. A a;
  24. B b(a);
  25. // B b(A());
  26. return 0;
  27. }
  28.  
Success #stdin #stdout 0s 4284KB
stdin
Standard input is empty
stdout
A()
A(const A&)
A(A&&)
B(A a)