19 template<
typename... Ts>
20 struct IsParameterPackSetImpl;
23 struct IsParameterPackSetImpl<>
25 static constexpr bool value =
true;
30 template<
typename T,
typename... Ts>
31 struct IsParameterPackSetImpl<T, Ts...>
32 :
public IsParameterPackSetImpl<Ts...>
33 ,
public virtual Empty<T>
35 using Base = IsParameterPackSetImpl<Ts...>;
37 static constexpr bool value = Base::value && !std::is_base_of_v<Empty<T>, Base>;
42 template<
typename... Ts>
47 template<
typename TList>
50 template<
template<
typename...>
class TList,
typename... Ts>
51 struct IsSetImpl<TList<Ts...>>
58 template<
typename TList>
59 using IsSet = detail::IsSetImpl<TList>;