Я хотел бы иметь возможность увеличить многословие для целей отладки моей программы. Конечно, я могу это сделать, используя флаг switch/flag во время выполнения. Но это может быть очень неэффективным из-за всех операторов if, которые я должен добавить в свой код.
Итак, я хотел бы добавить флаг, который будет использоваться во время компиляции, чтобы включить в мой код необязательные, обычно медленные операции отладки, не влияя на производительность и размер моей программы, когда это не нужно. вот пример:
/* code */
#ifdef _DEBUG_
/* do debug operations here
#endif
поэтому компиляция с -D_DEBUG_ должна делать трюк. без него эта часть не будет включена в мою программу.
Другим вариантом (по крайней мере для операций ввода-вывода) будет определение, по крайней мере, функции ввода-вывода, например
#ifdef _DEBUG_
#define LOG(x) std::clog << x << std::endl;
#else
#define LOG(x)
#endif
Однако я сильно подозреваю, что это, пожалуй, не самый чистый способ сделать это. Итак, что бы вы сделали вместо этого?