Esta é uma boa maneira de incorporar mensagens de depuração no meu programa? (Macros)

no arquivo Debug.h, eu tenho o seguinte:

#ifdef DEBUG_FLAG
    #define DEBUG(msg) std::cerr << #msg << std::endl
#else
    #define DEBUG(msg) for(;true==false;)
#endif

Em outros lugares, eu posso escrever algo como

void process (Data data)
{
    DEBUG("Function 'process' starts");
    // Blah blah
    // More blah blah...
    DEBUG("Function 'process' returns");
}

O compilador otimizará a opção for (; true == false;); ?

Além disso, esse tipo de prática está bem? Se não, qual seria o melhor caminho?

Obrigado!

questionAnswers(3)

yourAnswerToTheQuestion