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= またはコピー コンストラクターが例外をスローした場合、問題が発生します。スタックの内部状態は変更されていますが、ポップされた要素を取得していません。」(リンクより)