【发布时间】:2010-10-27 14:49:41
【问题描述】:
我想我确实了解移动语义的“基本思想”,但现在当我处于实现自己的地图的阶段时,我停下来开始思考,当我要编写一个用例并走路时通过移动地图的ctor。如果我错了,请纠正我,但我确实理解移动语义的整个业务是如何工作的,他们认为它们有助于避免不必要的复制?正确的?现在,以地图为例,仅出于本示例的目的,假设我的地图建模为:
class Map
{
Link* impl_;//THIS IS A POINTER TO A LINK WHICH HAS A parent, left and right (of Link type)
Map(Map&& tmp);//move ctor
//unnecessary code ommited
};
这里是障碍:
当我试图为我的地图考虑移动 ctor 时,我看不到一种方法可以避免为所有需要创建的链接分配新空间,然后将它们的指针与来自 tmp Map 对象的指针交换(作为 arg给我的移动 ctor)。
所以无论如何我都必须分配空间,不是吗?
【问题讨论】:
标签: c++ move-semantics