【发布时间】:2015-04-20 13:40:25
【问题描述】:
参考http://en.cppreference.com/w/cpp/language/as_operator 的页面,复制赋值运算符(在需要时由编译器自动生成)返回其自身类型的左值引用。
所以当我如下定义一个重载运算符时,
void operator=(T& t)
编译器是否还有可能隐式定义默认的复制赋值运算符?
【问题讨论】:
-
返回类型不被视为函数签名的一部分,所以我不希望
-
为什么要让退货无效?如果你这样做,你就不能做
foo a = b = c = d = some_val;之类的事情 -
@NathanOliver:那会是一件坏事吗?
-
您是否正在尝试解决某个特定问题?这个问题看起来像是一个可能的 X/Y 问题。
-
@BenjaminLindley 好吧,如果他想禁止它,那就不行。我倾向于支持这样的论点,即如果您提供一个运算符,它的行为应该类似于内置类型的运算符。