• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:clangで例外がキャッチできない?)

C++でboost::lexical_castを使った際の例外キャッチについて

このQ&Aのポイント
  • clangで例外がキャッチできない場合がある
  • g++では例外がキャッチされるが、clangではキャッチされない
  • 詳しい原因はコンパイラオプションによるものかもしれない

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.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++を使うのが確実)

LambdaOmega
質問者

お礼

お礼遅くなりました. clang++を使えばいいってことですね. なんか,MinGW用の(Experimentalって書いてある)バイナリを落として来たらclang++.exeが0kb(空)になってたもので... ソースからビルドすることで解決しました. ありがとうございました!

関連するQ&A