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>...> {};