>Travis Vitek wrote:
>
>The overloads on double are in platform specific #ifdef blocks because
>they have platform specific code in them (_finite, finite, 
>isfinite). At
>least that is the only reason I see for it. So I don't really see the
>overloads on float and double outside of platform specific blocks as a
>problem as there is no platform specific code in them.
>
>I'm more worried about why the overloads on float and long double are
>added at all. If they are only being called from __rw_fmat_infinite(),
>and that function only works with a double, then I see no 
>motivation for the overloads.
>
>I'm also wondering why we provide default implementations of these
>functions if we know good and well that the results are wrong (for
>platforms that don't define _WIN32, _RWSTD_OS_SUNOS, or fpclassify).
>Shouldn't we fail to compile in this case?

As opposed to serializing bad results...

>The other thing that freaks me out is the implementation of 
>__rw_signbit
>on platforms defining _RWSTD_OS_SUNOS. It assumes something similar to
>IEEE-745 double representation. This may be a safe assumption for the
>time being, but what happens if the user compiles with -fnonstd? Does
>this still work?
>

With all that said, the sum of the changes to num_put.cpp seem to
eliminate the unexpected failures in the 22.locale.num.put test on
both sunos-5.10-gcc-4.1.1 and aix-5.3-vacpp-8.0 12D builds.

Travis

Reply via email to