Куда мне обратиться, если я хочу переключаться между плавающей точкой и двойной точностью во время компиляции. Как, если пользователь хочет все в плавании вместо двойной точности, как я могу поддерживать эту гибкость? Другими словами, как мне определить переменную, которая может быть условной переменной с плавающей или двойной точностью?
Если все в порядке, чтобы сделать переключатель во время компиляции, простой typedef
сделал бы:
#ifdef USE_DOUBLES
typedef double user_data_t;
#else
typedef float user_data_t;
#endif
использование user_data_t
в вашем коде, и установить USE_DOUBLES
если ты хочешь doubles
во время компиляции:
g++ -DUSE_DOUBLES=1 myprogram.cpp
Не зная точно, как вы собираетесь использовать данные, трудно порекомендовать правильное решение.
Посмотрите на союз тип даты.
http://msdn.microsoft.com/en-us/library/5dxy4b7b(v=VS.80).aspx
Шаблоны также будет приемлемым вариантом в зависимости от использования.
Я предпочитаю не иметь #define
в моем коде.
У меня будет два разных заголовка с двумя разными typedef
s, и позволяют вариантам сборки выбрать, какой заголовок включен.