開いているファイルのフラッシュやスタックトレースの印刷など、ingassert
だけでなくもっと便利なことをしたいと思っています。abort
アサーションの実装方法について説明しているAndreiAlexandrescuによるアサーションなどのアサーションに関する記事をいくつか読みました。ただし、プログラムで使用されているサードパーティのライブラリでも、アサートハンドラを自分のものに置き換えたいと思います。私が使用するほとんどの(すべてではない)コンパイラー(gcc、MSVC、clang)とライブラリー(Qt、boost)には、ユーザー定義のアサートハンドラーを設定するオプションがあることを理解しています。ただし、現時点では、アサーションの機能を使用することに興味がないAbort,Retry,Ignore
ため、コンパイラー/ライブラリ固有のアサーションハンドラーのコードを調べていません。
私が理解しているように、信号を送信するassert
呼び出しは、この信号をトラップして有用なタスクを実行できますか?abort
SIGABRT