Меня интересует, для чего различные платформы / компиляторы ("реализации") / фреймворки назначают макросу препроцессора C и C ++ NDEBUG
.
C , а также стандарт C ++ упоминают это определение только один раз, а именно, для управления поведением макроса assert()
.
Я бы попросил включить только конкретные ответы, где вы знаете , что определенная платформа / инфраструктура / библиотека для C или C ++ использует определение NDEBUG
для включения или отключения чего-либо иначе в дополнение к стандартному определенному assert()
макросу .
Одной из причин для того, чтобы задать этот вопрос, было то, что MS (Visual-C ++) всегда (?) Использует «свои» _DEBUG
определения, чтобы различать вещи отладки и выпуска, и мне было интересно, если это распространенная практика для библиотеки / платформы иметь свое "собственное" определение отладки или другие библиотеки / платформы используют NDEBUG
для своих вещей, связанных с отладкой.