Я работаю над библиотекой C++ maths, в которой я хочу иметь возможность настраивать во время компиляции с помощью define.Использование #define для конфигурации библиотеки
Одна из конфигураций определяет точность. В коде это выглядит так:
#ifdef MYMATH_USE_DOUBLE
typedef double Real;
#else
typedef float Real;
#endif
Это нормально работает.
Если кто-то хочет использовать библиотеку после того, как она была сконфигурирована с помощью MYMATH_USE_DOUBLE
, они также должны передать это определение компилятору.
Есть ли лучший способ сделать это?
Я не хочу, чтобы пользователь помнил, какие определения были использованы для компиляции библиотек математики, а затем повторить их все для своего приложения.
Это то, что я считал решением. Теперь мне просто нужно выяснить, имеет ли мой метод сборки (scons) способ создания заголовка. – m0tive
Это отвечает на то, как компилировать предпочтения в библиотеку. Я согласен с тем, что использование шаблонов (описанных в других комментариях) также будет работать, но требует большего количества рефакторинга кода. – m0tive