fork download
  1. #include <cstddef>
  2. #include <iostream>
  3. #include <memory>
  4. #include <vector>
  5.  
  6. struct X
  7. {
  8. X() { ++count; std::cout << "Constructing, count = " << count << "\n"; }
  9. ~X() { --count; std::cout << "Destructing, count = " << count << "\n"; }
  10.  
  11. static std::size_t count;
  12. };
  13. std::size_t X::count = 0;
  14.  
  15. int main()
  16. {
  17. std::vector<std::unique_ptr<X>> vec;
  18. vec.reserve(2);
  19.  
  20. // one way
  21. vec.push_back(std::unique_ptr<X>(new X));
  22.  
  23. // another way
  24. vec.emplace_back(new X);
  25.  
  26. return 0;
  27. }
  28.  
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
Constructing, count = 1
Constructing, count = 2
Destructing, count = 1
Destructing, count = 0