我正在开展一个我们选择使用Boost :: MultiIndex容器的项目。很酷,我喜欢它。但是,我们使用Boost 1.54在构建目标上遇到问题,因为在该版本中容器不支持元素的移动语义。这是一个问题,因为元素具有不可复制的成员。这意味着它们也是隐含的不可复制的。
我可以提供一个完整的例子,但这确实是一个最佳实践问题,而不是一个细节问题:
class ContainerElement
{
public:
someMethods()
...
private:
NonCopyableEvent event;
};
我们有问题类:
class NonCopyableEvent : noncopyable
{
private:
/* some project-specific stuff regarding the global scheduler. */
};
好的,我的三个主要策略是:
ContainerElement
的复制构造函数以复制所有内容,但移动NonCopyableEvent
。这也是我不喜欢的,原因与上述类似。< / LI>
醇>
主要关注的是事件是指全局事件,并且复制该事件将是完全不可接受的。有人可以在这里给出一些设计指导吗?