message: fix: try to dodge MSVC compiler bug
diff: @@ -525,13 +525,24 @@ bool allNonNegative(const T (&arr)[N])
  return true;
  }
  -/// \brief Checks if the first type in a parameter pack is integral
  +/// \brief Indirection needed to dodge an MSVC compiler bug
  +template <typename... Args>
  +struct first_type_is_integral_impl : std::false_type
  +{ };
  +
  template <typename First, typename... Rest>
  -struct first_type_is_integral
  +struct first_type_is_integral_impl<First, Rest...>
  {
  static constexpr bool value = std::is_integral<First>::value;
  };
  +/// \brief Checks if the first type in a parameter pack is integral
  +template <typename... Args>
  +struct first_type_is_integral
  +{
  + static constexpr bool value = first_type_is_integral_impl<Args...>::value;
  +};
  +
  template <MemorySpace SPACE>
  inline int getAllocatorID();
  