У меня есть библиотека C ++, которая выполняет числовую работу.Основным параметром является количество сегментов.Для скорости в 3 раза важен номер сегмента const
, однако я хотел бы определить его во время компиляции, используя -DSEGMENTS 32
.Заголовок выглядит так:
#ifdef SEGMENTS
const int segments = SEGMENTS
#else
const int segments = 20
#endif
Это работает.Однако программы, связывающиеся с этой библиотекой, не получают -DSEGMENTS
, и поэтому segments
всегда равно 20. Без const
я знаю решение, но с не знаю.Я могу представить какой-нибудь трюк extern
или установку заголовка после предварительной компиляции, если это возможно с помощью cmake.