Możesz użyć sposobu podobnego do tego, który zastosowano przy assert (http://en.cppreference.com/w/cpp/error/assert):
1. Zdefiniuj sobie makro, które będzie wykonywało działania potrzebne w trybie debugowania, np:
// To tylko przykład
#define DEBUG_PRINT(...) debug::println(__VA_ARGS__)
2. Skonstruuj takie cudo:
#ifdef NDEBUG
#define DEBUG_PRINT(...) ((void)0)
#else
#define DEBUG_PRINT(...) debug::println(__VA_ARGS__)
#endif
Co to oznacza? Jeżeli zdefiniowałeś makro NDEBUG (co pewnie oznacza not debugging albo coś w tym stylu) to Twoje makro nie będzie miało żadnego efektu, w przeciwnym razie wykona swoją robotę.