solodon4/Mach7

Bugs when building with VS 2013 and VS 2015

Closed this issue · 4 comments

There are several source issues that have to be fixed due to changes in the standard library and supported features in Visual Studio 2013 and 2015

Most of the tests now compile in VS 2010, 2012, 2013, 2015RC. Few remaining ones I'll be looking at soon.

When I build on VS2015 (Community release), I get errors that mostly boil down to this one:

c:\source\mach7\Mach7\code\mach7\patterns/n+k.hpp(140): error C2672: 'operator __surrogate_func': no matching overloaded function found
c:\source\mach7\Mach7\code\mach7\patterns/n+k.hpp(168): note: see reference to class template instantiation 'mch::expr<F,mch::value<_Ty>,mch::value<_Ty>>' being compiled
        with
        [
            F=mch::gcd_functor,
            _Ty=size_t
        ]
c:\source\mach7\Mach7\code\mach7\patterns/n+k.hpp(168): note: see reference to class template instantiation 'mch::expr<F,mch::ref2<mch::var<size_t>>,mch::ref2<mch::var<size_t>>>' being compiled
        with
        [
            F=mch::gcd_functor
        ]

I enclose the build log:
build-2016-02-25-01-25-VS2015.log.txt

Yes, I get that one too. This is one of the unfinished ones that I either got during the move of the headers into subfolder or it might be a regression in the new VS. I should bring back the build to no errors this weekend. I keep logs from older successful builds, so I'll have to dig through them before I know for sure.

The likely Visual C++ compiler issue has been workaround in commit b2aadc9. All tests now build and run in VS 2010, 2012, 2013 and 2015 as can be seen in our AppVeyor CI. There have been other workarounds put in place to avoid few other issues.