29 template <std::size_t,
typename... Args>
struct is_gather_signature_impl;
30 template <std::size_t N_,
typename Arg0,
typename Arg1,
typename... MoreArguments>
31 struct is_gather_signature_impl<N_, Arg0, Arg1, MoreArguments...>
32 :
public std::integral_constant<bool, has_subscript_operator<Arg0>::value &&
33 !is_loadstoreflag_internal<Arg1>::value &&
34 has_subscript_operator<Arg1>::value> {
36 template<
typename... Args>
struct is_gather_signature_impl<0, Args...> :
public std::false_type {};
37 template<
typename... Args>
struct is_gather_signature_impl<1, Args...> :
public std::false_type {};
39 template <
typename... Args>
struct is_gather_signature :
public is_gather_signature_impl<sizeof...(Args), decay<Args>...> {};