Stephan T. Lavavej <stl <at> exchange.microsoft.com> writes:
[Niall Douglas]
apart from Boost.Config having to turn off variadic templates
on VS2013 due to breakage in Boost.Signals2 and a few other
minor places, it was all looking very good indeed in the RC.
Argh. Have any MS Connect bugs been filed to track those variadic template problems? I wasn't aware that
Boost had to turn them off - that's a big deal.
I have finally found the issue. signals2::slot has 2 constructors: slot<F>(const F &f) { init_slot_function(f); } slot<BindArgs...>(const BindArgs &...args) { init_slot_function(boost::bind(args...)); } MSVC12 always chooses the variadic constructor, so calling it with boost::bind(...) always tries to call boost::bind(boost::bind(...)). If I understand the example in 14.8.2.4.8 of the January 2012 working draft correctly, it should be the other way around, shouldn't it?