Farid Zaripov wrote:
-----Original Message-----
From: Martin Sebor [mailto:[EMAIL PROTECTED] On Behalf Of Martin Sebor
Sent: Thursday, April 24, 2008 8:53 AM
To: [email protected]
Subject: Re: svn commit: r650902 - /stdcxx/trunk/src/num_put.cpp

I guess I don't understand why the float overloads are all unconditionally hardcoded:
http://fisheye6.cenqua.com/browse/stdcxx/trunk/src/num_put.cpp
?r=trunk#l184

  Because I thought that is too late to implement float overloads and
check them on
every supporting platforms. Anyway _C_float case branch is not used at
the moment
(__rw_put_num() used in num_put<>::_C_put(), and _C_put() used in
num_put<>::do_put()
but there is no float overload for do_put()).

Okay, that makes me feel a little better because num_put must
already convert floats to doubles. We should probably comment
out the float branch in __rw_put_num().

So let me try to summarize the new behavior:

                Solaris   Windows   Other
  float            X         X        X
  double          fmt       fmt     printf
  long double    printf     fmt     printf

  X        converted to double by iostreams
  fmt      formatted using __rw_fmat_infinite(double)
  printf   formatted using sprintf()

Did I get it right?

Btw., is there a test for this other than 22.locale.num.put?

Martin

Reply via email to