8
考虑下面的代码任何保证:是否有在C++堆栈变量的顺序被破坏
{
std::auto_ptr<Something> p1(pSomePointer);
std::auto_ptr<Something> p2(pSomeOtherPointer);
...
}
是否有任何保证,P2析构函数之前P1的退出范围时叫什么名字?常识说堆栈变量应该先从堆栈顶部销毁,但C++编译器可以重新排列任务。
...不仅适用于堆栈变量。 – sbi 2010-11-12 14:30:22
@sbi:是的,如果不采取措施,后者可能导致各种各样的错误。 – sharptooth 2010-11-12 14:31:47
@sbi我们在谈论什么其他变数?全球? – Elemental 2010-11-12 15:41:01