【发布时间】:2019-05-08 15:44:19
【问题描述】:
我很好奇复合赋值运算符是否对多个参数有效。我的猜测是 += 不会有副作用,但可能与 "-=" 的情况不同。
std::string a;
a += "Hello" + " "+"World"; // doesn't compile
std::string name = "Old";
a += "Hello" + name +"World"; // compiles
【问题讨论】:
-
你为什么不直接编译它以确定它是否有效?
-
@JesperJuhl 公平地说,并不是因为代码编译它才有效。
-
@FrançoisAndrieux 当然不是(我知道你知道我知道)。但它会让 OP 添加附加信息:“it compiles”或“it doesn't compile with this error: ...”。自己做一些基本的测试(比如“这甚至可以编译吗?”)是一个好习惯。
-
他们(不是我)可能认为您在提出问题之前没有做足够的研究。这有点主观。
标签: c++ string operator-overloading string-literals user-defined-literals