Приветствую.
Предположим, Вы разрабатываете некоторую библиотеку или фреймворк. Каким образом Вы организуете версионность для пользователя, чтобы он мог пользоваться этим знанием для каких-то своих целей (вывод в лог, оборачивание version-specific участков кода, etc)? Да, хотелось бы использовать схему "%major%.%minor%.%patch%", но с удовольствием выслушаю Ваши идеи и предложения.
Казалось бы, при таком подходе наилучшим решением можно считать использование двух констант -- для числового и строкового представлений текущей версии. Числовое можно будет использовать для оборачивания version-specific участков кода (например, при помощи #ifdef-ов), а строковое может быть более читаемым (может пригодиться, например, для вывода в лог).
А как при таком подходе поддерживать числовые версии до 1.0.0 (например, 0.0.1)?
#define LIB_VERSION 1
Так, что ли? Или есть какие-то идеи получше?