TIsArrayOrRefOfTypeByPredicate<                                                                                                          ArrType(&)[N], Predicate >TIsArrayOrRefOfTypeByPredicate<                                                                                                          ArrType[], Predicate >TIsArrayOrRefOfTypeByPredicate<                                                                                                          ArrType[N], Predicate >TIsArrayOrRefOfTypeByPredicate<                                  volatile ArrType(&)[N], Predicate >TIsArrayOrRefOfTypeByPredicate<                                  volatile ArrType[], Predicate >TIsArrayOrRefOfTypeByPredicate<                                  volatile ArrType[N], Predicate >TIsArrayOrRefOfTypeByPredicate< const                                                                  ArrType(&)[N], Predicate >TIsArrayOrRefOfTypeByPredicate< const                                                                  ArrType[], Predicate >TIsArrayOrRefOfTypeByPredicate< const                                                                  ArrType[N], Predicate >TIsArrayOrRefOfTypeByPredicate< const volatile ArrType(&)[N], Predicate >TIsArrayOrRefOfTypeByPredicate< const volatile ArrType[], Predicate >TIsArrayOrRefOfTypeByPredicate< const volatile ArrType[N], Predicate >