gpt4 book ai didi

c++ - 为什么在此函数中返回时使用 std::move

转载 作者:搜寻专家 更新时间:2023-10-31 01:46:12 28 4
gpt4 key购买 nike

<分区>

我刚刚阅读了 STL 的 visual studio 实现的 algorithm.h header ,我发现了以下代码:

template<class _InIt,
class _Fn1> inline
_Fn1 for_each(_InIt _First, _InIt _Last, _Fn1 _Func)
{ // perform function for each element
_DEBUG_RANGE(_First, _Last);
_DEBUG_POINTER(_Func);
_For_each(_Unchecked(_First), _Unchecked(_Last), _Func);

return (_STD move(_Func));
}

...代码的重要部分如下:

 template<class _InIt, class _Fn1> 
inline _Fn1 for_each(_InIt _First, _InIt _Last, _Fn1 _Func)
{ // perform function for each element
_For_each(_Unchecked(_First), _Unchecked(_Last), _Func);
return (std::move(_Func));
}

...这是_For_each 函数的签名

template<class _InIt,
class _Fn1> inline
void _For_each(_InIt _First, _InIt _Last, _Fn1& _Func)

我的问题是为什么在这种情况下返回时需要 std::move ?为了完成这个问题:在什么情况下从函数返回时需要使用 std::move ?我认为以务实的方式获得这些信息可能会有用。

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