On 20 Sep 2013 at 10:51, Beman Dawes wrote:
I updated boost/config Visual C++ support yesterday to add Visual C++ 2013 RC support. But Mat Berchtold reported that signals2 tests then started to fail. I confirmed that 2013 RC tests were failing for signals2 and several of its dependencies, and narrowed it down to variadic templates so reverted to defining BOOST_NO_CXX11_VARIADIC_TEMPLATES for 2013 RC.
I fear the cause may be the same brittle N3276 decltype VS2013 implementation I found breaking my variadic template overloads in AFIO. The main problem I found is that VS2013's decltype is too quick to generate compile errors when fed an attempt to invoke call on a non-callable. I tried working around the problem by trying to partially specialise a filter template type with all callable types in order to avoid doing a decltype on slightly incorrect input. I was successful in all but lambda types, because I couldn't figure out how to get VS2013 to select a partial specialisation for lambda types i.e. I didn't figure out how to replicate the trick on VS2013 of accessing the call operator in the unknown lambda type like you can do on GCC or clang. I ran out of time to experiment further, so I hacked out the opposite filter of disabling the variadic overload for known non-variadic overloads and diverting everything else to the variadic overload. I hope this is useful to anyone else facing the same problem. Niall -- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/