スレッドを超えて例外を伝播させる その2

例外伝播テストをVC++に対応させました。
差分


あと、g++でスタック巻き戻し中で保留中の例外がある間に別の例外を投げて、その例外を伝播させようとするとクラッシュしていたので修正しました。
差分


まだ細かいバグは残ってると思うんですが、一応g++とVC++で動くようになりました。
ただ、g++とVC++で出来ることが違うんで、両者の処理を共通化するのは難しいですね。

コンパイラ 例外オブジェクト 例外の伝播(移動) 例外のコピー
g++ ヒープに置かれる ノーコスト、例外送出なし 不可能
VC++ スタックに置かれる 要動的メモリ、例外送出の可能性あり 可能

う〜ん、厳しいですねぇ。