C++ Standard Library
  1. C++ Standard Library
  2. STDCXX-51

infinity, NaN formatted differently on different platforms

    Details

    • Type: Improvement Improvement
    • Status: Reopened
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: 4.1.2, 4.1.3, 4.1.4, 4.2.0, 4.2.1
    • Fix Version/s: 4.2.2
    • Component/s: 22. Localization
    • Labels:
      None
    • Environment:

      all

    • Patch Info:
      Patch Available
    • Severity:
      Incorrect Behavior

      Description

      The output of the program below is different depending on the operating system it runs on. It should be the same (preferably like that on AIX).

      $ cat u.cpp && uname -sr && make u -r && ./u
      #include <iostream>
      #include <limits>
      
      int main ()
      {
          std::cout << std::numeric_limits<double>::infinity () << '\n'
                    << std::numeric_limits<double>::quiet_NaN () << '\n'
                    << std::numeric_limits<double>::signaling_NaN () << '\n'; 
      }
      SunOS 5.9
      gcc -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG   -pthreads -D_RWSTD_USE_CONFIG -I/build/sebor/gcc-3.4.3-15s/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include  -pedantic -nostdinc++ -g  -Wall -W -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long  u.cpp
      gcc u.o -o u -pthreads -L/build/sebor/gcc-3.4.3-15s/lib -lstd15s  -lsupc++ -lm
      rm u.o
      inf
      nan
      nan
      
      $ uname -vs && gmake u -r && ./u
      AIX 5
      xlCcore_r -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG    -D_RWSTD_USE_CONFIG -I/build/sebor/vacpp-7.0.0.3-15D/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include  -g  -q64  -qtemplateregistry=u.ti   u.cpp
      xlCcore_r u.o -o u -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG    -D_RWSTD_USE_CONFIG -liconv -brtl   -q64 -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG    -D_RWSTD_USE_CONFIG -I/build/sebor/vacpp-7.0.0.3-15D/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/examples/include  -qtemplateregistry=u.ti -L/build/sebor/vacpp-7.0.0.3-15D/lib -lstd15D   -lm
      rm u.o
      inf
      nanq
      nans
      
      1. num_put.diff
        10 kB
        Farid Zaripov

        Issue Links

          Activity

          Farid Zaripov logged work - 02/Apr/08 16:12
          • Time Spent:
            13h
             
            Investigated the presence of the functions to detect inf and nan values on different platforms and compilers.
            Created and tested patch on MSVC, gcc/Linux.

            People

            • Assignee:
              Martin Sebor
              Reporter:
              Martin Sebor
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:

                Time Tracking

                Estimated:
                Original Estimate - 13h Original Estimate - 13h
                13h
                Remaining:
                Time Spent - 13h Remaining Estimate - 8h
                8h
                Logged:
                Time Spent - 13h Remaining Estimate - 8h
                13h

                  Development