在 C# 中,当您从堆栈中弹出时,它会从堆栈中删除对象并返回该对象。
但是,在 C++ 中因为http://blogs.msdn.com/b/zhanli/archive/2010/06/29/c-tips-why-the-pop-method-of-stl-stack-does-not- return-a-value.aspx,pop 函数不会返回对象。
是什么让 C# 能够做 C++ 做不到的事情?还是更像 C# 不关心这种异常情况是否发生?“如果 operator= 或复制构造函数抛出异常,那么我们将遇到麻烦:堆栈的内部状态已经改变,但我们还没有得到弹出的元素。” (来自链接)