gpt4 book ai didi

C++ vector 实现 - move 构造函数 - move 与前进

转载 作者:太空狗 更新时间:2023-10-29 21:05:05 29 4
gpt4 key购买 nike

在 MSVC2010 下,vector 类的 move 构造函数定义如下:

vector(_Myt&& _Right)
: _Mybase(_Right._Alval)
{ // construct by moving _Right
_Assign_rv(_STD forward<_Myt>(_Right));
}

因为还有一个复制构造函数的定义,我想我们永远不会调用 vector(_Myt&& _Right) 并将左值引用作为参数。

所以我想知道是否在这里,这一行:

_Assign_rv(_STD forward<_Myt>(_Right));

可以替换为:

_Assign_rv(_STD move<_Myt>(_Right));

没有副作用

最佳答案

是的,对于没有引用限定符的类型 T , 两者 std::forward<T>std::forward<T&&>只是花哨的说法std::move .

关于C++ vector 实现 - move 构造函数 - move 与前进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10814042/

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