【发布时间】:2016-04-01 14:06:08
【问题描述】:
我想知道在堆栈中分配的对象是否在抛出异常时被释放。
例如,在函数中:
void some_function()
{
int i;
std::string str;
throw std::runtime_error{"Some error"};
}
【问题讨论】:
-
是的;您可以通过使用打印消息的析构函数创建自定义类型来非常轻松地验证这一点。
-
是的,如果函数在某个级别的 try 块中调用。我确定我至少看到过一个副本。
-
@juanchopanza stackoverflow.com/questions/8311457/… 怎么样?