| 190 | // avoid ambiguous overload issues for smaller integral types like `int`. |
| 191 | template <typename T> |
| 192 | std::enable_if_t<std::conjunction_v<std::is_integral<T>, std::is_unsigned<T>, |
| 193 | std::negation<std::is_same<T, size_t>>>, |
| 194 | ErrorValue> |
| 195 | IndexOutOfBoundsError(T index) { |
| 196 | static_assert(sizeof(T) <= sizeof(size_t)); |
| 197 | return IndexOutOfBoundsError(static_cast<size_t>(index)); |
| 198 | } |
| 199 | template <typename T> |
| 200 | std::enable_if_t<std::conjunction_v<std::is_integral<T>, std::is_signed<T>, |
| 201 | std::negation<std::is_same<T, ptrdiff_t>>>, |