From dc9bfe51ab8c7f0224608246a6465ce183f9517f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=9C=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=BD=D0=BA=D0=B5=D0=B2=D0=B8=D1=87?= Date: Mon, 21 Jul 2025 16:00:01 +0700 Subject: [PATCH] fup --- tree.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tree.cc b/tree.cc index 7a198f2..1706f7a 100644 --- a/tree.cc +++ b/tree.cc @@ -4,7 +4,6 @@ #include #include #include -#include class INode; class ILink; @@ -134,7 +133,8 @@ private: mutable std::mutex lock_; }; -// Типизированная связь один ко многим +// Note: TypedOneToManyLink ensures type-safety on child linkage + template class TypedOneToManyLink : public OneToManyLink { public: @@ -149,7 +149,8 @@ public: } }; -// Базовая реализация LinkMixin +// Note: BaseLinkMixin is used for direct eager link composition (non-lazy) + class BaseLinkMixin : public ILinkMixin { public: explicit BaseLinkMixin(NodePtr self) { @@ -182,7 +183,8 @@ protected: LinkPtr link_; }; -// Ленивый LinkMixin с выбором стратегии по типу +// Note: LazyLinkMixin starts with LeafLink and upgrades dynamically + template class LazyLinkMixin : public ILinkMixin { public: @@ -243,7 +245,6 @@ private: LinkPtr link_; }; -// Пример узла class SimpleNode : public INode, public std::enable_shared_from_this { public: static std::shared_ptr create(std::string name) { @@ -273,7 +274,6 @@ private: LinkMixinPtr mixin_; }; -// Пример использования void printTree(const LinkPtr& link, int indent = 0) { for (int i = 0; i < indent; ++i) std::cout << " "; auto node = link->getNode();