fork download
  1. #include <iostream>
  2. #include <memory>
  3. #include <vector>
  4.  
  5.  
  6.  
  7. int global;
  8.  
  9. class A {
  10. public:
  11. A(int i): a(i) {}
  12. ~A() {
  13. std::cout << "delete A" << std::endl;
  14. ++global;
  15. };
  16. int foo() {
  17. return a;
  18. }
  19. int a;
  20. };
  21.  
  22.  
  23. int main() {
  24.  
  25.  
  26. int c = 0;
  27. int loops = 10;
  28. global = 0;
  29.  
  30. // Make vector of pointers
  31. std::vector<std::shared_ptr<A> > vec;
  32. for(int i = 0; i< 2; i++) {
  33. vec.push_back( std::shared_ptr<A>(new A(i)) );
  34. }
  35.  
  36. for(int i=0; i<loops; i++) {
  37. for(auto & p : vec) {
  38. c += p->foo();
  39. }
  40. }
  41.  
  42. std::cout << " deleted:" << global << std::endl;
  43.  
  44. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
 deleted:0
delete A
delete A