That's just how the language is, nothing you can do about it.
However it is theoretically doable, if you're prepared to create your own compile time floating point type from scratch. You'll need 3 enums, one for the exponent, one for the mantissa, and one for the sign. Then define the basic operations like shifting, and use those to build addition, then from there you should be able to build multiplication etc... Last of all you need to define a float cast operator.
Or so I've read once before... I haven't gotten around to trying it, though I've reimplemented run-time floating point numbers like this before.
So we'll be hearing from you in a month no?
Oh template-metaprogramming is so fun!!!