Subject: [Boost-bugs] [Boost C++ Libraries] #12956: Already defined errors in VS2008 ARM because of enable_if_c
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-04-07 22:01:48
#12956: Already defined errors in VS2008 ARM because of enable_if_c
------------------------------------------------+--------------------------
Reporter: Vyacheslav Lanovets <vyacheslav@â¦> | Owner: johnmaddock
Type: Bugs | Status: new
Milestone: To Be Determined | Component:
Version: Boost 1.63.0 | multiprecision
Keywords: enable_if_c sfinae | Severity: Problem
------------------------------------------------+--------------------------
Solution:Use enable_if instead of enable_if_c where possible.
To see the problem, it's enough to include cpp_bin_float.hpp.
Win32 compiler in VS2008 sp1 compiles it normally. But ARMV4I clarm
compiler in the same installation with Widows Mobile 6 SDK - does not.
While there are many Windows CE systems out there, MS stopped producing
compilers for it long time ago. Everybody is stuck with VS2008.
Use of "::value" as argument makes it optimistically bring the function
into scope. And later it complaints about redefinition.
Replacing enable_if_c with enable_if wherever possible in
cpp_bin_float.hpp apparently forces compiler to perform substitution, and
it fails and SFINAE works.
(After the above is changed, clarm.exe incorrectly deduce SignType of
eval_left_shift but it's a different investigation)
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/12956> 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-04-07 22:04:35 UTC