fork download
  1. #include <memory>
  2. #include <experimental/memory>
  3.  
  4. class Node {
  5. public:
  6. int32_t x;
  7. };
  8.  
  9. int main()
  10. {
  11. {
  12. std::shared_ptr<Node> shared_node{std::make_shared<Node>()};
  13. std::weak_ptr<Node> weak_node{shared_node};
  14. // this ^ works
  15. }
  16.  
  17. {
  18. std::unique_ptr<Node> unique_node{std::make_unique<Node>()};
  19. // but the following doesn't work :(
  20. // std::experimental::observer_ptr<Node> observer_node{unique_node};
  21. std::experimental::observer_ptr<Node> observer_node{std::experimental::observer_ptr<Node>(unique_node.get())};
  22. // any better way to do this ^ ?
  23. }
  24.  
  25. return 0;
  26. }
Success #stdin #stdout 0s 4528KB
stdin
Standard input is empty
stdout
Standard output is empty