Макрос _DEBUG
доступен для всего проекта, поскольку он определен на странице свойств проекта в Visual Studio.Я не уверен, что есть возможность экспортировать макросы из * .hpp в cmd (насколько я знаю, это невозможно).Поскольку вы пометили свой вопрос в Visual Studio, я предполагаю, что это единственная IDE, которую вы используете, и вам нет дела до переносимости.
Когда дело доходит до Visual Studio, существуют листы свойств, которые предназначены дляпровести всю конфигурацию для проекта.Они разделены по типу сборки (например, отладка, выпуск, x64, x86).Я думаю, что было бы неплохо использовать их.Вы можете прочитать больше об этом на MSDN .ИМХО, я думаю, это лучше, чем хранить все это в каком-то исходном файле, но это только мое мнение.
Я не уверен, что это лучший способ.Как и во многих библиотеках C ++, часто используется много макросов, аналогично тому, что вы написали, например, проверка версии компилятора и переключение некоторых вещей, если определено _DEBUG
.Другая вещь, которую можно выбрать, - это использование CMake, который содержит конфигурацию сборки, но это будет почти то же самое, что страница свойств Visual Studio (но будет более переносимой для других ОС).
Важная вещь никогда не делает такого рода хак, потому что когда-нибудьВы забудете удалить его, и это вызовет проблемы у других
// temporarily overrules _DEBUG
#define MM_DEBUG true