#pragma once #include #include "ifaces/ILink.h" template class ILinkMixin { public: using LinkPtr = std::shared_ptr>; using ElemPtr = std::shared_ptr; virtual ~ILinkMixin() = default; virtual void linkChild(const ElemPtr& child) = 0; virtual void unlinkParent() = 0; virtual const std::vector& children() = 0; virtual LinkPtr getLink() = 0; };