C ++ «Перечисление с плавающей точкой»

Я ищу решение с использованием стандарта C ++ 03 (я вынужден использовать эту версию стандарта еще несколько лет). Решения для C ++ 11 тоже приветствуются, но не будут »принято" как ответ на этот вопрос.

Это простой, краткий способ, которым я могу представить набор связанных значений констант с плавающей запятой в виде одного типа (аналогично перечислению), чтобы обеспечить безопасность типов без значительных накладных расходов и при этом позволить мне работать со значениями как с плавающей запятой напрямую ?

Конечным результатом является то, что я хотел бы иметь возможность сделать что-то вроде следующего:

enum FloatingPointEnum
{
   VALUE1 = 0.1234f,
   ...
   VALUEN = 0.6789f
};


float SomeFunction(FloatingPointEnum value)
{
    float new_value;
    /* perform some operation using "value" to calculate "new_value" */
    new_value = static_cast(value); //