Boost logo

Boost Users :

Subject: Re: [Boost-users] WIN64 vs _WIN64
From: Roberto Fichera (kernel_at_[hidden])
Date: 2012-02-28 05:40:32


On 02/27/2012 03:24 PM, Roberto Fichera wrote:
> Hi All,
>
> I got a compilation error while compiling a library under Win64 arch that includes the
> boost/numeric/interval/msvc_rounding_control.hpp
>
> c:\boost_1.48\include\boost/numeric/interval/detail/msvc_rounding_control.hpp(33) : error C4235: nonstandard extension
> used : '_asm' keyword not supported on this architecture
> c:\boost_1.48\include\boost/numeric/interval/detail/msvc_rounding_control.hpp(33) : error C2065: 'FLD' : undeclared
> identifier
> c:\boost_1.48\include\boost/numeric/interval/detail/msvc_rounding_control.hpp(34) : error C4235: nonstandard extension
> used : '_asm' keyword not supported on this architecture
>
> So I checked the code under boost/numeric/interval/detail/msvc_rounding_control.hpp and it seems
> that it does a preprocessor check against WIN64 instead of _WIN64

I would say that I just found this ticket https://svn.boost.org/trac/boost/ticket/5519
that reports the same problem.

>
> namespace boost {
> namespace numeric {
> namespace interval_lib {
> namespace detail {
>
> #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
>
> Is there any reason why do not check against _WIN64 instead of WIN64 since the boost
> does always check against _WIN64? _WIN64 is also already pre-defined as normal
> MSVC definition when targeting x86_64 archs.
>
> [roberto_at_roberto include]$ grep -R WIN64 *
> boost/serialization/force_include.hpp:#elif ! defined(_WIN32) && ! defined(_WIN64)
> boost/detail/win/synchronization.hpp: #if defined(_WIN64)
> boost/detail/win/basic_types.hpp:# ifdef _WIN64
> boost/intrusive/detail/mpl.hpp:#if defined(_MSC_EXTENSIONS) && !defined(__BORLAND__) && !defined(_WIN64)
> boost/python/converter/builtin_converters.hpp:# if defined(_MSC_VER) && defined(_WIN64) && PY_VERSION_HEX < 0x03000000
> boost/xpressive/xpressive_fwd.hpp:# if (defined(_WIN32) || defined(_WIN64) || defined(_WINCE)) \
> boost/thread/win32/thread_primitives.hpp:# ifdef _WIN64
> boost/regex/config.hpp:# if(defined(_WIN32) || defined(_WIN64) || defined(_WINCE)) \
> boost/signals2/detail/lwm_win32_cs.hpp:#if defined(_WIN64)
> boost/config/compiler/intel.hpp:#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) &&
> (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
> boost/config/compiler/intel.hpp:#if defined(_WIN32) || defined(_WIN64)
> boost/smart_ptr/detail/lwm_win32_cs.hpp:#if defined(_WIN64)
> *boost/numeric/interval/detail/msvc_rounding_control.hpp:#if BOOST_MSVC < 1400 || defined(WIN64)*
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net