10 namespace onnxruntime {
36 return gsl::span<P>(p,
s);
56 constexpr
auto AsSpan(std::initializer_list<T> c) {
60 template <
class T,
size_t N>
65 template <
class T,
size_t N>
66 constexpr
auto AsSpan(
const T (&arr)[
N]) {
71 inline gsl::span<const T>
EmptySpan() {
return gsl::span<const T>(); }
73 template <
class U,
class T>
77 Expects(src.size_bytes() %
sizeof(U) == 0);
78 return gsl::span<U>(
reinterpret_cast<U*
>(src.data()), src.size_bytes() /
sizeof(U));
81 template <
class T1,
size_t Extent1,
class T2,
size_t Extent2>
82 [[nodiscard]]
inline bool SpanEq(gsl::span<T1, Extent1>
a, gsl::span<T2, Extent2>
b) {
83 static_assert(std::is_same_v<std::remove_const_t<T1>, std::remove_const_t<T2>>,
84 "T1 and T2 should be the same type except for const qualification");
85 return std::equal(a.begin(), a.end(), b.begin(), b.end());
constexpr auto AsSpan(C &c)
GLboolean GLboolean GLboolean GLboolean a
IMATH_HOSTDEVICE constexpr bool equal(T1 a, T2 b, T3 t) IMATH_NOEXCEPT
gsl::span< const T > EmptySpan()
GLboolean GLboolean GLboolean b
constexpr auto AsSpanImpl(P *p, size_t s)
gsl::span< U > ReinterpretAsSpan(gsl::span< T > src)
GA_API const UT_StringHolder N
bool SpanEq(gsl::span< T1, Extent1 > a, gsl::span< T2, Extent2 > b)