小编Bru*_*uce的帖子

为什么定义了移动构造函数并隐式删除了赋值运算符?

struct Foo
{
    Foo() = default;
    Foo(Foo&&) = default;
};

int main()
{
    Foo a, b;
    a = b;
   // ^ 

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误:使用已删除的函数'Foo&Foo :: operator =(const Foo&)'

在g ++ 4.6 -std = c ++ 0x中没关系.但是,在g ++ 6.2 -std = c ++ 11中,这是错误的.为什么?

c++ gcc g++ c++11

3
推荐指数
1
解决办法
677
查看次数

标签 统计

c++ ×1

c++11 ×1

g++ ×1

gcc ×1