c++ - 包含 boost::optional 对象的 std::vector 对象是否可移动?可移动 boost::可选?

标签 c++ boost c++11

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

自从新标准以来 vector 是可移动的,但不幸的是他们还没有使可选的可移动:(

  1. 有没有制作可选可移动的计划?

  2. 上面的 vector 是否仍然可以像其他 vector 一样有效地移动?

最佳答案

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

关于c++ - 包含 boost::optional 对象的 std::vector 对象是否可移动?可移动 boost::可选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14986461/

相关文章:

c++ - 如何使用 std::next_permutation 强制跳转

c++ - 析构函数是否被视为 const 函数?

python - Cython 包装一个使用另一个库的类

c++ - boost condition_variable 等待多个锁

c++ - 如何识别boost fusion vector 中的类型

c++ - 类型别名允许分配任意指针,尽管 int* 是预期的

c++ - “BackgroundSubtractorMOG”不是 ‘cv’ 的成员

c++ - Cannot specify link libraries for target错误CMakeLists

c++ - 使用 C++11 复制构造 boost::shared_ptr 时出错

c++ - const 和非常量类型的部分 std::hash 特化