diff --git a/include/boost/mp11/algorithm.hpp b/include/boost/mp11/algorithm.hpp index cc749a9..4ee111b 100644 --- a/include/boost/mp11/algorithm.hpp +++ b/include/boost/mp11/algorithm.hpp @@ -1140,11 +1140,23 @@ template using mp_power_set = typename detail::mp_power_set_impl::ty namespace detail { +#if BOOST_MP11_WORKAROUND( BOOST_MP11_MSVC, <= 1800 ) + +template class L, class... T> struct mp_power_set_impl< L > +{ + static_assert( sizeof...(T) == 0, "T... must be empty" ); + using type = L< L<> >; +}; + +#else + template class L> struct mp_power_set_impl< L<> > { using type = L< L<> >; }; +#endif + template class L, class T1, class... T> struct mp_power_set_impl< L > { using S1 = mp_power_set< L >;