//段階的デバッグ切り替え
#define DEBUG_LEVEL 1  // ← ← ← ここを切り替えるだけ!
#if DEBUG_LEVEL >= 1
#define DBG1(x) x
#else
#define DBG1(x)
#endif

#if DEBUG_LEVEL >= 2
#define DBG2(x) x
#else
#define DBG2(x)
#endif

使用例
DBG1(std::cout << "簡易デバッグ\n";)
DBG2(std::cout << "詳細デバッグ\n";)
//DEBUG_LEVEL 0 → どちらも出ない(完全無視)
//DEBUG_LEVEL 1 → DBG1 だけ出る(一部有効)
//DEBUG_LEVEL 2 → 両方出る(フルデバッグ)

 

複数行はどうかな?

 

int main() { 

DBG(

 

 std::cout << "debug\n"; std::cout << "debug\n"; std::cout << "debug\n"; std::cout << "debug\n"; std::cout << "debug\n"; std::cout << "debug\n"; std::cout << "debug\n";

 

)

 std::cout << "Hello World!\n";

}// いけた。

 

引用 chatGPT