NJM*_*JMR 25 c++ c++11 visual-studio-2013
我正在阅读有关移动构造函数的内容,我在VS 2013中执行了此代码...
class Student
{
unique_ptr<string> pName_;
public:
Student(string name) : pName_(new string(name)) { }
~Student() { }
Student(Student&&) = default; // Here I get the error.
void printStudentName(void) { cout << *pName_ << endl; }
};
int main(void)
{
vector<Student> persons;
Student p = Student("Nishith");
persons.push_back(std::move(p));
persons.front().printStudentName();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Student::Student(Student&& )当我尝试编译时,我得到" :不是可以默认的特殊成员函数"...
任何人都可以解释我为什么会收到此错误?
Rog*_*and 41
因为VS2013编译器不支持默认的移动构造函数.
请参阅MSDN中的以下注释:
Visual Studio不支持默认的移动构造函数或移动赋值运算符,因为C++ 11标准要求.有关更多信息,请参阅Support for C++ 11 Features(Modern C++)的默认和删除函数部分 .
| 归档时间: |
|
| 查看次数: |
5873 次 |
| 最近记录: |