「引数で与えられた書式+引数を、ソースファイル名と行番号付きで表示するマクロ」の作り方4種。 printf といっても出力先はデバッガの出力ウィンドウです (_CrtDbgReport 使ってるので _CrtSetReportMode/_CrtSetReportFile で出力先を標準出力とかに変えられます)。 その1. __noop を使う 関数オブジェクトのコンストラクタで __FILE__ と __LINE__ を受け取り、括弧演算子で printf な書式と引数を受け付けます。 リリースビルドでは __noop で TRACE_F マクロの中身が実行されないようにします。 #ifdef _DEBUG #include <crtdbg.h> #define TRACE_F debug_trace_format(__FILE__, __LINE__) class debug_trace