このコード:
#include <iostream>
#include <stdexcept>
using namespace std;
int throw_it() {
throw range_error( "foo" );
}
int main() {
try {
throw throw_it();
}
catch ( exception const &e ) {
cerr << e.what() << endl;
return 0;
}
}
実行時に出力foo
されますが、そうすることが保証されていますか? より具体的には、例外をスローするプロセス中に例外をスローすると、定義された動作が発生しますか? そして、その動作は最近スローされた例外をスローするものですか (上記のテスト コードのように)?
ご参考までに:
$ g++ --version
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)