我感兴趣的情况是
const int &n1 = 123;
const int &n2 = 123;
我知道这就像字面意思一样123
是初始化临时的参数int
and const
只是一个无聊的编译时检查,但我想知道为什么在这种情况下需要不同的临时变量,而不是n1
and n2
两者具有相同的临时性。
I know 规则存在 https://stackoverflow.com/a/53421624/7813604但不知道为什么会有这个规则。
const int &n1 = 123;
const int &n2 = 123;
我想知道在这种情况下需要不同的临时变量的原因。
因为 C++ 委员会可能不关心这个具体案例。他们的想法和目标是提供关于如何在更有用和常见的情况下处理临时变量的规则:评估临时变量的完整表达式链创建、使用和销毁:
class A { /* ... */ };
A make_a();
void consume_a(A&&);
void use_a(A const&);
consume_a(make_a());
use_a(make_a());
很明显make_a()
需要产生一个不同的暂时的A
每一次。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)