fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <memory>
  4.  
  5. struct A
  6. {
  7. virtual ~A() { std::cout << "A::~A()\n"; }
  8. };
  9.  
  10. struct B : A
  11. {
  12. ~B() { std::cout << "B::~B()\n"; }
  13. };
  14.  
  15. int main()
  16. {
  17. std::vector<std::unique_ptr<A>> v;
  18. v.emplace_back(new B);
  19. v.emplace_back(new B);
  20. v.emplace_back(new B);
  21. v.emplace_back(new B);
  22.  
  23. v.clear();
  24.  
  25. return 0;
  26. }
  27.  
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
B::~B()
A::~A()
B::~B()
A::~A()
B::~B()
A::~A()
B::~B()
A::~A()