diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index d79642b..d0db652 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -9151,7 +9151,35 @@ be able to destroy a cyclic structure. ##### Example - ??? + #include + + class bar; + + class foo + { + public: + explicit foo(const std::shared_ptr& forward_reference) + : forward_reference_(forward_reference) + { } + private: + std::shared_ptr forward_reference_; + }; + + class bar + { + public: + explicit bar(const std::weak_ptr& back_reference) + : back_reference_(back_reference) + { } + void do_something() + { + if (auto shared_back_reference = back_reference_.lock()) { + // Use *shared_back_reference + } + } + private: + std::weak_ptr back_reference_; + }; ##### Note