Есть ли хороший способ включить определенные члены только в отладочную сборку программы?
У меня есть индексированная структура данных, из которой я использую большое количество экземпляров, которые несут определенный флаг состояния в случае изменения некоторого содержимого структуры данных, но индекс не обновлен.
Флаг состояния используется только для проверки того, что все использования индекса вызывают функциональность update
, если данные были изменены, но по соображениям производительности и хранения, поскольку существует множество экземпляров, и структура данных может быть сильно изменена до вызова update
, я хотел бы сохранить эти данные только для сборки отладки.
В этих флагах существуют два типа операций:
- Установка/Сброс флага
-
assert
что флаг не установлен, то есть некоторые части индекса все еще действительны.
Есть ли более приятные способы достижения этого, чем посыпать мой код операторами #ifndef NDEBUG
?
Примечание. В моем специальном случае производительность может быть не такой большой, но я все еще ищу общий способ приблизиться к этому, поскольку, вероятно, для этой же идеи есть, вероятно, более сложные варианты использования.