2009-01-01から1ヶ月間の記事一覧

inline 関数を使用場所より後で定義してもいいか?

すぐ忘れるので,メモ. inline 関数は,先行宣言しておくことで,定義が使用場所より後にある場合でも問題なく使える.

テンプレートの部分特殊化を利用した const 除去型 〜boost のソースを読む〜

過去記事「テンプレートの部分特殊化を利用した間接参照型推定」では,テンプレートのテンプレートの部分特殊化 (Wikipedia)を使ってポインタ型やイテレータ型からそれを間接参照した型(ポインタを取った型)を推定する方法を紹介した.この方法を使って,…

liboctave のエラーハンドラを自分で定義して,デバッグを効率化

liboctave を使っていると,例えば要素数の異なる列ベクトルを足そうとしたときに fatal: operator +: nonconformant arguments (op1 len: 2, op2 len: 5) というエラーが発生し,プログラムが正常終了する.正常終了とは exit(1) による終了で, コアファイ…

lexit: デバッグを効率化する終了関数

C/C++ で,エラーを検出してプログラムを強制終了する場合, exit(EXIT_FAILURE) とか abort() を使う.このうち abort() はコアを吐いてから終了してくれるから(linux の場合),コアを gdb などで解析することにより,デバッグが楽になる.例えば gdb a.o…