- 235 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 01:12:08 ]
- アサーションをインラインで宣言して、どこの行でエラーが起こったか知りたいです。
以下の様に書いてみましたが、インライン関数MUSTOKの行数でエラーが起こった、もしくは、assert関数がある行が 表示されてしまいます。できればこの関数MUSTOK(0==1);がある行が知りたいのですが、どうしたらよいでしょうか? 実行環境 gcc バージョン 4.2.4 (Ubuntu 4.2.4-1ubuntu3) ubuntu8.4 ソースコード == #include <cassert> #include <iostream> inline void MUSTOK(bool cond) { if(!cond) { std::cout<<"file=:"<<__FILE__<<"\tlie=:"<<__LINE__<<std::endl; } assert(cond); } int main(int argc,char *argv[]) { MUSTOK(0==1); return 0; } == 実行結果 file=:assert_test.cpp lie=:7 assert_test: assert_test.cpp:9: void MUSTOK(bool): Assertion `cond' failed. Aborted
|

|