包含boost::可选对象的std::矢量对象是否可以移动?可移动助推::可选

Are std::vector objects containing boost::optional objects movable? Movable boost::optional?

本文关键字:对象 可移动 移动 可选 boost std 包含 是否      更新时间:2023-10-16
std::vector<boost::optional<double>> foo;
//populate foo.

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

  1. 有没有计划制作可供选择的移动设备?

  2. 上面的向量还会像其他向量一样有效地移动吗?

std::vector组件是可移动的,与存储的类型无关。移动操作只需要将指向一个向量中内部缓冲区的指针移动到另一个向量。存储在该缓冲区中的对象的类型是不相关的,因为这些对象停留在它们所在的位置。