让我们foo
成为一个带有复制赋值运算符的结构或类:
struct foo {
foo &operator=(const foo &); // or with some other return type?
};
除了*this
从operator=()
. _ _ 将其用于与分配无关的事情并不明智。
让我们foo
成为一个带有复制赋值运算符的结构或类:
struct foo {
foo &operator=(const foo &); // or with some other return type?
};
除了*this
从operator=()
. _ _ 将其用于与分配无关的事情并不明智。
标准中的示例是std::atomic
. 它返回分配的值。如果它返回引用,那么通读它可能会产生不同的结果。
如果要防止分配链接。
有时它很好地防止这样的表达:
x = y = z = a = b = c = d = foo{15};
所以你让赋值运算符返回无效。
struct foo {
void operator=(const foo &);
};
对于某些类型,链接没有意义。但是你必须根据具体情况来看待它。