[Boost-bugs] [Boost C++ Libraries] #12956: Already defined errors in VS2008 ARM because of enable_if_c

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