Opened 14 years ago
Closed 14 years ago
#2264 closed Bugs (fixed)
Warning C4244 in VS2005 build for PocketPC
Reported by: | Owned by: | Daniel James | |
---|---|---|---|
Milestone: | Boost 1.37.0 | Component: | hash |
Version: | Boost 1.36.0 | Severity: | Cosmetic |
Keywords: | Cc: |
Description
I am getting these two warnings:
1>include\boost/functional/detail/float_functions.hpp(91) : warning C4244: 'return' : conversion from 'double' to 'float', possible loss of data 1>include\boost/functional/detail/float_functions.hpp(118) : warning C4244: 'return' : conversion from 'double' to 'float', possible loss of data
They can be easily fixed with an explicit cast to float. These warnings occur in functions call_ldexp and call_frexp in part conditioned with BOOST_HASH_C99_NO_FLOAT_FUNCS and BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS.
Attachments (2)
Change History (10)
comment:1 by , 14 years ago
Status: | new → assigned |
---|
comment:2 by , 14 years ago
It seems the platform does support float versions of math functions. I didn't run config_info.cpp, because my platform is a standard VS2005/PocketPC2003 project running on WM5.
comment:3 by , 14 years ago
I wanted to see the output of config_info so that I could see what macros the platform sets as I don't have access to it myself. But it seems that the best thing to do is always use the c99 functions for the Dinkumware libraries so I'll change it to do that.
comment:4 by , 14 years ago
comment:5 by , 14 years ago
comment:6 by , 14 years ago
Okay, I think the current trunk gets it right, can you test it? If it works for you, I'll merge into release and close this ticket.
comment:8 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
(In [48739]) Always use c99 float function overloads when using Dinkumware with Visual C++, as it doesn't always have the C++ overloads. Fixes #2264.
Merged revisions 48529,48674 via svnmerge from https://svn.boost.org/svn/boost/trunk
........
r48529 | danieljames | 2008-09-02 11:31:26 +0100 (Tue, 02 Sep 2008) | 1 line
Always use c99 float function overloads on Dinkumware, as it doesn't always have the C++ overloads. Refs #2264.
........
r48674 | danieljames | 2008-09-08 22:06:16 +0100 (Mon, 08 Sep 2008) | 7 lines
Reinstate the old choice of float functions on Dinkumware for all compilers other than Visual C++.
It turns out that Borland uses Dinkumware but doesn't have the C99 float overloads, so it only seems realistic to assume their existence on Visual C++. Refs #2264.
........
An explicit cast wouldn't be a good idea because it can hide potential problems. If that's the only solution, then I'd want to use a macro to only enable it when it's needed.
Please can you run the programs attached to the mail at http://lists.boost.org/Archives/boost/2005/04/83834.php, and attach the output to this ticket. And the output from
libs/config/test/config_info.cpp
in boost would also be helpful. That should at least give me an idea of the situation. Thanks.