デバッグモード・リリースモードの切り替え
120 名前:デフォルトの名無しさん[sage] 投稿日:2007/03/25(日) 05:17:34
#ifdef _DEBUG
#define DEBUG_ONLY
#else
#define Paste(a, b) a##b
#define DEBUG_ONLY(fn) Paste(/, *) fn Paste(*, /)
#endif
こんなマクロを作ったんだが、これって邪道?121 名前:デフォルトの名無しさん[sage] 投稿日:2007/03/25(日) 05:26:30
自己レスだがどう考えてもこっちの方がいいです。
本当にありがとうございました。
#ifdef _DEBUG
#define DEBUG_ONLY
#else
#define DEBUG_ONLY(fn)
#endif122 名前:デフォルトの名無しさん[sage] 投稿日:2007/03/25(日) 07:55:21
漏れはこんなの作ってみた。
#ifdef DEBUG
#define IF_DEBUG 1 && /**< 常に有効 */
#else
#define IF_DEBUG 0 && /**< 常に無効(このマクロの右辺は生成されない) */
#endif
警告は出ちゃうけどね。123 名前:デフォルトの名無しさん[sage] 投稿日:2007/03/25(日) 12:59:08
俺はいつもこれ使ってる。
release 時は最適化で消えるはず。
#ifdef NDEBUG
#define DEBUG if(1); else
#else
#define DEBUG if(0); else
#endif