Subject: [Boost-bugs] [Boost C++ Libraries] #5519: Error C4235 in msvc_rounding_control.hpp (numeric.interval_lib.detail)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-05-05 07:32:21
#5519: Error C4235 in msvc_rounding_control.hpp (numeric.interval_lib.detail)
-----------------------------------+----------------------------------------
Reporter: hajokirchhoff | Owner: jhunold
Type: Bugs | Status: new
Milestone: To Be Determined | Component: None
Version: Boost 1.46.1 | Severity: Problem
Keywords: rint numeric interval |
-----------------------------------+----------------------------------------
The code tests WIN64 when it should test _WIN64.
WIN64 is not a Microsoft standard preprocessor macro. _WIN64 is correct
(see Microsoft documentation http://msdn.microsoft.com/en-
us/library/b0084kay%28VS.80%29.aspx)
The effect is that the inline _asm function gets compiled when using the
64 Bit MSVC Compiler, which results in a C4235 error (_asm is not
supported).
Fix: Use _WIN64 instead of WIN64 to test for 64 Bit MSVC
{{{
#if BOOST_MSVC < 1400 || defined(WIN64)
extern "C" { double rint(double); }
#else
inline double rint(double x)
{
_asm FLD [x] ;
_asm FRNDINT ;
//_asm RET ;
}
#endif
}}}
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/5519> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:06 UTC