我可以用什么代替std::move()

What can I use instead of std::move()?

本文关键字:move std 什么 我可以      更新时间:2023-10-16

我正在使用具有 C++0x 规范的 C++ 编译器,并希望为一个环绕 std::wstring 的 String 类制作我的移动构造函数。

class String {
public:
    String(String&& str) : mData(std::move(str.mData)) {
    }
private:
    std::wstring mData;
};

在Visual Studio中,这完美无缺。 在 Xcode 中,std::move()不可用。

std::move只是将其参数转换为右值引用。您可以编写自己的版本:

template<class T>
typename std::remove_reference<T>::type&&
move( T&& arg ) noexcept
{
  return static_cast<typename std::remove_reference<T>::type&&>( arg );
}