在向量增长期间强制执行移动语义
当带有已定义复制和移动构造函数的非平凡元素的 std::vector 增长时,默认行为是使用复制构造函数创建新的元素副本。要强制使用移动构造函数,必须通知 C 此构造函数不会抛出异常。
实现
以指示可以调用移动构造函数安全地,使用 noexcept 说明符声明它:
A(A &&rhs) noexcept { std::cout << "i am the move constr" << std::endl; ... move-assignment code ... }
通过此修改,std::vector 将优先使用移动构造函数增长,确保现有元素的资源被移动而不是复制。
附加信息
以上是如何强制 std::vector 在增长过程中使用移动语义?的详细内容。更多信息请关注PHP中文网其他相关文章!