草庐IT

TestNonMovable

全部标签

c++ - 为什么 C++ 允许您使用已删除的 move 操作来 move 包含对象的类?

为什么允许我在包含具有已删除move语义的类型字段的类上使用std::move(案例1),但不允许在此类实例上使用它一个类(案例2)?我理解案例2。我已明确删除了move构造函数,因此如果我尝试move它,则会出现错误。但我希望在案例1中也会出现这种情况,该类也正在move。classTestNonMovable{std::stringss;public:TestNonMovable(){}TestNonMovable(constTestNonMovable&){}TestNonMovable(TestNonMovable&&)=delete;};classSomeClass{Test

c++ - 为什么 C++ 允许您使用已删除的 move 操作来 move 包含对象的类?

为什么允许我在包含具有已删除move语义的类型字段的类上使用std::move(案例1),但不允许在此类实例上使用它一个类(案例2)?我理解案例2。我已明确删除了move构造函数,因此如果我尝试move它,则会出现错误。但我希望在案例1中也会出现这种情况,该类也正在move。classTestNonMovable{std::stringss;public:TestNonMovable(){}TestNonMovable(constTestNonMovable&){}TestNonMovable(TestNonMovable&&)=delete;};classSomeClass{Test