fork(1) download
  1. #include <iostream>
  2. #include <memory>
  3.  
  4. int main()
  5. {
  6. std::weak_ptr<int> weakPtr;
  7. auto deleter = [&](int* targetPtr)
  8. {
  9. std::cout
  10. << "- Can we restore a shared pointer in its deleter?\n"
  11. << "- " << (weakPtr.lock().get() ? "Yes." : "No.") << std::endl;
  12. delete targetPtr;
  13. };
  14. std::shared_ptr<int> sharedPtr(new int(), deleter);
  15. weakPtr = sharedPtr;
  16. std::cout
  17. << "- Has the shared pointer been created?\n"
  18. << "- " << (weakPtr.lock().get() ? "Yes." : "No.") << std::endl;
  19. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
- Has the shared pointer been created?
- Yes.
- Can we restore a shared pointer in its deleter?
- No.