时间对象的生命周期延长

问题描述 投票:0回答:0

有如下一段代码

 void bar(int  const & x)#3
{
}
void foo(int  const &  x)#1
{

    bar(x);#2
}

int main()
{
   double  x = 1.0;
   foo(static_cast<int>(x));#0

}

在 #0 处创建了一个纯右值并将其传递给 foo #1。 对象的生命周期被延长。然后它被传递到 bar #2。此时,temporal object 不是扩展了两次? Sanitizer 会报告任何问题。

此时我缺少什么?

c++ lifetime
© www.soinside.com 2019 - 2024. All rights reserved.