这个 "on-fly" 传递对象会不会内存泄漏?
Would this "on-fly" passing object suffer of memory leak?
我正在创建(分配)"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
是否足够聪明,可以在超出范围时将其删除?
不,没关系:std::complex<double>(0.0, -0 * freq * 2 * M_PI)
是一个 匿名临时 并且 C++ 标准非常具体地说它 "lives" 只要声明;从概念上讲,std::complex
的析构函数在 resZeros
.
的赋值之后被调用
匿名临时对象不会导致内存泄漏。
我正在创建(分配)"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
是否足够聪明,可以在超出范围时将其删除?
不,没关系:std::complex<double>(0.0, -0 * freq * 2 * M_PI)
是一个 匿名临时 并且 C++ 标准非常具体地说它 "lives" 只要声明;从概念上讲,std::complex
的析构函数在 resZeros
.
匿名临时对象不会导致内存泄漏。