From 0551dec300edca1b61ad0e0e1c27cad47e0d7aa2 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Thu, 11 Sep 2008 18:28:51 +0000 Subject: [PATCH] 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. ........ [SVN r48739] --- include/boost/functional/detail/float_functions.hpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/include/boost/functional/detail/float_functions.hpp b/include/boost/functional/detail/float_functions.hpp index 72386ad..a35f292 100644 --- a/include/boost/functional/detail/float_functions.hpp +++ b/include/boost/functional/detail/float_functions.hpp @@ -61,9 +61,13 @@ // Dinkumware. #elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) -// Overloaded float functions were probably introduced in an earlier version -// than this. -# if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 402) +// Some versions of Visual C++ don't seem to have the C++ overloads but they +// all seem to have the c99 float overloads +# if defined(BOOST_MSVC) +# define BOOST_HASH_USE_C99_FLOAT_FUNCS +// On other platforms the C++ overloads seem to have been introduced sometime +// before 402. +# elif defined(_CPPLIB_VER) && (_CPPLIB_VER >= 402) # define BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS # else # define BOOST_HASH_USE_C99_FLOAT_FUNCS