goto跳过代码而不调用析构函数和事物是真的吗?
例如
void f() {
int x = 0;
goto lol;
}
int main() {
f();
lol:
return 0;
}
Run Code Online (Sandbox Code Playgroud)
会不会x泄露?
我正在开发一个C++程序,使用一些函数,脚本或使程序重新启动的东西会很有用.这是一个很大的程序,所以手动重启所有变量将花费我很长时间......
我不知道是否有任何方法可以实现这一目标或是否可行.
此代码导致未定义的行为:
void some_func() {
goto undefined;
{
T x = T();
undefined:
}
}
Run Code Online (Sandbox Code Playgroud)
不调用构造函数.
但是这段代码怎么样?x的析构函数会被调用吗?我想会是,但我想确定.:)
void some_func() {
{
T x = T();
goto out;
}
out:
}
Run Code Online (Sandbox Code Playgroud)