这个“on-fly”传递对象会遭受内存泄漏吗?

时间:2017-01-14 17:43:33

标签: c++ memory-leaks std

我正在创建(分配)“on-fly”复数,同时将其传递给exp()函数。整个代码:

std::complex<double> resZeros(0.0, 0.0);
resZeros = a0 * std::exp(std::complex<double>(0.0, -0 * freq * 2 * M_PI));

这会引入内存泄漏吗?事实上,我不会手动销毁std::complex<double>(0.0, -0 * freq * 2 * M_PI)

std::complex足够智能,在超出范围时将其删除?

1 个答案:

答案 0 :(得分:2)

没错,std::complex<double>(0.0, -0 * freq * 2 * M_PI)是一个匿名临时,C ++标准非常具体地说它生活在&#34;只要声明;从概念上讲,std::complex的析构函数在赋值给resZeros之后被调用。

匿名临时不会导致内存泄漏。