Listing 1

// An erroneous implementation of a compile-time float.
template<int iMantissa, int iExponent = 0> struct CFloat
{
   operator const float ( ) const
   {
      return ( iExponent < 0 ) ?
                    float ( mantissa ) / CPower<10, iExponent>::result :
                    mantissa * CPower<10, iExponent>::result;
   }
} ;