我和我的一位同事就此进行了讨论。并且想知道更多人对哪个“可以”更优的看法? PS:如果代码只是一个 hello world 程序,-O3 会产生相同的代码,但我们讨论的是此代码段位于大型项目中间的场景。
最佳答案
上下文具有决定性的重要性。你的分析器可能会告诉你不要出汗。
在这种情况下,无论如何都必须构造一个新的 std::string
,并且“对生命周期扩展的临时值的常量引用”实际上只会导致编译器做更多的工作(到发出等效/相同的代码)。
我会选择清晰度:
代码意图,而非方法
所以
std::string tmp("Hello");
或者
std::string tmp = "Hello";
会充分表达意图。
关于c++ - const string a = "tmp"vs const string& a = "tmp",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12630259/