1
0
forked from boostorg/mp11

made mp_is_set<S> robust when S is not a list

This commit is contained in:
joaquintides
2024-11-08 19:50:48 +01:00
parent 13a81c86ee
commit c2bc9788ca

View File

@ -109,9 +109,19 @@ struct mp_is_set_helper: Base
static mp_true contains( mp_identity<T> );
};
template<class S> struct mp_is_set_impl
{
using type = mp_false;
};
template<template<class...> class L, class... T> struct mp_is_set_impl<L<T...>>
{
using type = mp_bool<mp_fold<mp_list<T...>, detail::mp_is_set_helper_start, detail::mp_is_set_helper>::value>;
};
} // namespace detail
template<class S> using mp_is_set = mp_bool<mp_fold<S, detail::mp_is_set_helper_start, detail::mp_is_set_helper>::value>;
template<class S> using mp_is_set = typename detail::mp_is_set_impl<S>::type;
// mp_set_union<L...>
namespace detail