移动构造函数-默认构造函数VS 2013的类型无效

新泽西

我正在阅读有关move构造函数的信息,我在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;
}

Student::Student(Student&& )尝试编译时,出现“ :不是可以默认的特殊成员函数” ...

谁能解释我为什么会收到此错误?

罗杰·罗兰德

因为VS2013编译器不支持默认的move构造函数。

请参阅MSDN的以下说明

Visual Studio不支持C ++ 11标准要求的默认移动构造函数或移动分配运算符。有关更多信息,请参见C ++ 11功能支持(现代C ++)的“默认和删除的功能”部分

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

移动构造函数不能默认

来自分类Dev

构造函数默认参数

来自分类Dev

子类型的构造函数

来自分类Dev

在不调用initializer_list构造函数的情况下,将不可复制,不可移动的类型构造为函数参数

来自分类Dev

默认构造函数无法处理隐式超级构造函数引发的异常类型SocketException

来自分类Dev

了解默认移动构造函数定义

来自分类Dev

Visual Studio 2013(更新3)中的默认Move构造函数

来自分类Dev

自动映射错误:类型没有默认构造函数

来自分类Dev

用户定义的左值引用类型成员的移动构造函数

来自分类Dev

调用类型的空默认构造函数

来自分类Dev

默认移动构造函数

来自分类Dev

提供用户定义的移动构造函数时,Visual Studio 2013不会删除副本构造函数

来自分类Dev

默认移动构造函数和引用成员

来自分类Dev

默认移动构造函数Visual Studio 2015

来自分类Dev

移动构造函数绕过复制构造函数

来自分类Dev

用默认构造函数生成的C ++移动构造函数

来自分类Dev

默认移动构造函数

来自分类Dev

为什么移动构造函数的成员需要默认构造函数?

来自分类Dev

移动构造函数与移动分配

来自分类Dev

使用自己的Typescript类型时,默认不是构造函数

来自分类Dev

多个默认构造函数

来自分类Dev

带互斥成员的默认移动构造函数

来自分类Dev

移动指针类型的构造函数?

来自分类Dev

移动构造函数不移动

来自分类Dev

默认移动构造函数

来自分类Dev

自动移动构造函数

来自分类Dev

默认构造函数无法处理异常类型隐式超级构造函数引发的异常

来自分类Dev

移动构造函数抱怨“非类类型”

来自分类Dev

如何在golang中隐藏默认类型构造函数?

Related 相关文章

热门标签

归档