考虑移动赋值运算符的this规范形式:c + +只移动物体 - 如何从赋值运算符返回
class_name & class_name :: operator= (class_name &&)
当副本被禁用链接等于是不可能的,因为返回的值是lvalue
并从逻辑点的观点它没有任何意义。在那里我可以看到的唯一的地方(也许你有其他的样品)使用返回值调用,它接受一个函数时reference/const reference
到class_name
:
void foo(class_name&){}
void bar(const class_name&){}
void use_foo_bar()
{
some_class a;
foo(a = get_some_class());
bar(a = get_some_class());
}
,但我认为这是一个不好的编程风格(个人意见)我不想在代码库中看到它。
当禁用复制或void
返回类型正常时,返回当前对象是否有意义?
如果你写'的std ::链内move'这是可能的。 – 2014-10-09 14:46:27
@LightnessRacesinOrbit这就是...调用函数;)我不直接使用该值,我使用它调用函数并使用该函数的返回 – Felics 2014-10-09 14:49:56
我真的没有看到问题。 – 2014-10-09 14:59:32