From c158886591246a431282fa1f2d4ca98fffd8b61a Mon Sep 17 00:00:00 2001 From: Kohei Takahashi Date: Sat, 29 Oct 2016 21:29:26 +0900 Subject: [PATCH] Workaround for MSVC 12 variadics bug. --- include/boost/fusion/support/detail/and.hpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/include/boost/fusion/support/detail/and.hpp b/include/boost/fusion/support/detail/and.hpp index 8560f344..1b310dda 100644 --- a/include/boost/fusion/support/detail/and.hpp +++ b/include/boost/fusion/support/detail/and.hpp @@ -20,7 +20,11 @@ namespace boost { namespace fusion { namespace detail { template struct and_impl...> : true_type {}; - + + // This specialization is necessary to avoid MSVC-12 variadics bug. + template + struct and_impl1 : and_impl...> {}; + /* fusion::detail::and_ differs from mpl::and_ in the following ways: - The empty set is valid and returns true - A single element set is valid and returns the identity @@ -29,7 +33,7 @@ namespace boost { namespace fusion { namespace detail { reduces instantations when returning true; the implementation is not recursive. */ template - struct and_ : and_impl...> {}; + struct and_ : and_impl1 {}; }}} #endif // FUSION_AND_07152016_1625