Когда делает условную компиляцию хорошей идеей и когда это ужасно плохая идея?
Посредством условного компиляции я имею в виду использование #ifdef для компиляции определенных битов кода в определенных условиях. Сами #defined могут быть либо в общем файле заголовка, либо через директиву -D компилятора.