[英]Is there any guarantee for the order in which C++ stack variables are destroyed
请考虑以下代码:
{
std::auto_ptr<Something> p1(pSomePointer);
std::auto_ptr<Something> p2(pSomeOtherPointer);
...
}
是否保证在退出示波器时p1析构函数将在p1之前被调用? 常识说堆栈变量应首先从堆栈顶部销毁,但C ++编译器可以重新排序分配。
是的,它们按照与施工顺序相反的方式被摧毁 - 最后建造的物体将首先被摧毁。 C ++保证了这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.