- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:clangで例外がキャッチできない?)
C++でboost::lexical_castを使った際の例外キャッチについて
このQ&Aのポイント
- clangで例外がキャッチできない場合がある
- g++では例外がキャッチされるが、clangではキャッチされない
- 詳しい原因はコンパイラオプションによるものかもしれない
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
そんなはずはない、と思って確認しました。 > This application has requested the Runtime to terminate it in an unusual way. > Please contact the application's support team for more information. これが例外発生による結果です。 (手許の環境ではcore dumpします) 例外発生 → 異常終了 です。 clang test3.cpp -lstdc++ -I"C:\Program Files (x86)\boost\boost_1_47" とありますが、これでは、リンクはC言語用になります。 -lstdc++があるのでリンクはできましたが、例外処理のあたりは、それだけでは足りなかったようです。 clang用のC++コンパイラはclang++です。 clang++ test3.cpp -I"C:\Program Files (x86)\boost\boost_1_47" あるいは、 clang -v test3.cpp -lstdc++ -I"C:\Program Files (x86)\boost\boost_1_47" clang++ -v test3.cpp -I"C:\Program Files (x86)\boost\boost_1_47" と-vオプションを付けて、実行の経過を比べれば、なにが足りないかわかるかもしれません。 (オプションつけるよりは、clang++を使うのが確実)
お礼
お礼遅くなりました. clang++を使えばいいってことですね. なんか,MinGW用の(Experimentalって書いてある)バイナリを落として来たらclang++.exeが0kb(空)になってたもので... ソースからビルドすることで解決しました. ありがとうございました!