Чтобы достичь sh того, что вы хотите, попробуйте следующее:
#include <iostream>
#define DEBUG
int main() {
#ifdef DEBUG
std::cout << "WORKS!" << std::endl;
#endif
}
В этом случае вы можете отключить операторы отладки, изменив «define» на «undef».
#include <iostream>
#undef DEBUG
int main() {
#ifdef DEBUG
std::cout << "WORKS!" << std::endl;
#endif
}
Вы можете обнаружить, что ваш компилятор позволяет вам определять DEBUG вне самого кода, после чего вы можете уменьшить код до
#include <iostream>
int main() {
#ifdef DEBUG
std::cout << "WORKS!" << std::endl;
#endif
}
, а затем вызвать компилятор с опцией, такой как - DDEBUG = 0
Посмотрите главу о защитном программировании у Стива МакКоннелла, "Код завершен".