fork download
  1. #include <iostream>
  2. #include <memory>
  3.  
  4. struct A;
  5.  
  6. struct B
  7. {
  8. B();
  9. ~B();
  10.  
  11. private:
  12. std::unique_ptr<A> a;
  13. };
  14.  
  15.  
  16. struct A
  17. {
  18. private:
  19. void release_resources()
  20. {
  21. std::cout << "Releasing resources...\n";
  22. }
  23.  
  24. friend B::~B();
  25. };
  26.  
  27. B::B()
  28. : a(std::make_unique<A>())
  29. { }
  30.  
  31. B::~B()
  32. {
  33. a->release_resources();
  34. }
  35.  
  36. int main() {
  37. B b;
  38. }
Success #stdin #stdout 0s 4364KB
stdin
Standard input is empty
stdout
Releasing resources...