【发布时间】:2012-05-11 14:58:07
【问题描述】:
我正在使用具有 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? -
@Prætorian : Apple LLVM 编译器 3.0
-
C++0x = C++11。如果你的意思是一个不支持
std::move的编译器,写那个,不要发明一个不存在的区别会让每个人都感到困惑。 -
@KonradRudolph :我不想让任何人感到困惑——我也不认为我在发明什么。不居高临下地启发我会是更合适的回应,谢谢。
-
@ildjarn 并不是每个人都能提出适合您对问题的“完美”愿景的问题。这个问题很清楚,可以回答。
标签: c++ c++11 std rvalue-reference move-semantics