我正在使用符合 C++0x 规范的 C++ 编译器,并希望为环绕 std::wstring 的 String 类创建 move 构造函数。
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 );
}
关于c++ - 我可以用什么代替 std::move()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10553841/