gpt4 book ai didi

C++ 11 移动语义和 STL 容器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:33 28 4
gpt4 key购买 nike

关于移动语义和容器:

  1. 我知道当移动操作在元素类型中定义时,STL 容器会利用移动。但是它如何知道元素是否定义了移动操作?

  2. 为什么 STL 容器不直接对元素调用 std::move(),而不管元素是否定义了移动操作?我问这个是因为我知道您可以在对象上调用 std::move(),即使它的类型没有定义任何移动操作。

谢谢。

最佳答案

长话短说,这正是他们所做的,调用 std::move 而不关心它是否能够移动或只是复制。

值得注意的是,一些提供强异常保证的函数,例如 std::vector::resize,将调用鲜为人知的 std::move_if_nothrow 而不是std::move.

关于C++ 11 移动语义和 STL 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592898/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com