我有树。它提供空间分区服务(不仅仅是 BSP)。树中的每个节点都可以拥有(通过 unique_ptr)多态对象。这些对象需要知道它们被分配到哪个节点。因此,在为节点创建对象时,我必须将节点引用传递给构造函数。
node.data.reset(new t_Something(node));
通常我需要创建(并分配给相应的节点)多个对象,而不仅仅是一个。
node_a.data.reset(new t_Wing(node_a, /*wing args*/...));
node_h.data.reset(new t_Hall(node_h, /*hall args*/...));
node_b.data.reset(new t_Wing(node_b, /*wing args*/...));
我正在开发内容生成器,将来我会写很多这样的代码。我想避免重复node_XXX
。node_XXX.data.reset(new T(node_XXXX