包含boost :: optional对象的std :: vector对象是否可移动?可移动的增强::可选?

时间:2013-02-20 17:43:20

标签: c++ boost c++11

std::vector<boost::optional<double>> foo;
//populate foo.

自新标准以来,矢量是可移动的,但遗憾的是它们还没有可选移动:(

  1. 有关制作可选动产的计划吗?

  2. 上述矢量是否仍然可以像任何其他矢量一样有效地移动?

1 个答案:

答案 0 :(得分:7)

无论存储的类型如何,std::vector组件都是可移动的。移动操作只需将移动指向一个向量中的内部缓冲区的指针移动到另一个向量。存储在该缓冲区中的对象的类型是无关紧要的,因为它们保持原样。