Boost C++ Libraries: Ticket #12956: Already defined errors in VS2008 ARM because of enable_if_c https://svn.boost.org/trac10/ticket/12956 <p> Solution:Use enable_if instead of enable_if_c where possible. </p> <p> To see the problem, it's enough to include cpp_bin_float.hpp. </p> <p> 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. </p> <p> Use of "::value" as argument makes it optimistically bring the function into scope. And later it complaints about redefinition. </p> <p> 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. </p> <p> (After the above is changed, clarm.exe incorrectly deduce <a class="missing wiki">SignType</a> of eval_left_shift but it's a different investigation) </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12956 Trac 1.4.3 John Maddock Mon, 10 Apr 2017 11:31:53 GMT <link>https://svn.boost.org/trac10/ticket/12956#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/12956#comment:1</guid> <description> <p> I'm somewhat loathed to make that change: I had a lot of problems getting msvc to handle the enable_if's and using enable_if_c by and large worked better across more versions. I'm fairly sure this would open a can of worms that would break a bunch of other stuff :( </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Sat, 30 Dec 2017 19:05:12 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/12956#comment:2 https://svn.boost.org/trac10/ticket/12956#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> Ticket