move-assignment-operator相关内容

自动生成默认/复制/移动构造函数和复制/移动赋值运算符的条件?

我想刷新我对编译器通常自动生成默认构造函数、复制构造函数和赋值运算符的条件的记忆. 我记得有一些规则,但我不记得了,而且在网上也找不到信誉良好的资源.有人可以帮忙吗? 解决方案 在下文中,“自动生成"的意思是“隐式声明为默认值,但未定义为已删除".有些情况下,特殊成员函数被声明,但被定义为删除. 如果没有用户声明的构造函数(第 12.1/5 节),则会自动生成默认构造函数. ..

C ++将分配移动到未初始化的对象?

后续操作: 使用副本构造函数后,子对象的双重释放 我遵循建议的5规则。 但是现在似乎在未初始化的对象(对象ID为0)上发生了移动分配?我希望它从对象3移到对象2。 我创建了以下(最低要求)示例,似乎触发了我的问题: #include #include A类 { public: A() { myCtr = ++ ..
发布时间:2020-10-08 20:05:08 C/C++开发

标准库中自赋值不安全的移动赋值运算符的基本原理是什么?

关于移动分配的标准库政策是:允许实现假定自赋值永远不会发生;在我看来,这是一个非常糟糕的主意,因为: C ++中的“常规"(“副本")转让合同一直被视为可以避免自我转让;现在,我们还有另外一个不连贯的C ++特例需要记忆和解释-还有一个微妙的危险.我想我们都同意,C ++所需的不是 更多隐藏的陷阱; 它使算法复杂化-remove_if系列中的任何东西都需要照顾这种极端情况; 真正满足此要 ..
发布时间:2020-05-12 19:26:08 C/C++开发

自动生成默认/复制/移动ctor和复制/移动赋值运算符的条件?

我想刷新我的记忆条件下,编译器通常会自动生成默认构造函数,复制构造函数和赋值运算符。 我似乎回忆有一些规则,但我不记得,也不能找到一个有信誉的资源在线。 解决方案 在下文中,“自动生成”表示“隐式声明为默认值, “。在某些情况下,声明了特殊成员函数,但定义为已删除。 默认构造函数是自动生成的 如果没有用户声明的移动构造函数或移动赋值运算符(因为没有移动构造函数或移动),那么复 ..