template<class IndexType, size_t... Extents, class... SliceSpecifiers>
constexpr auto submdspan_canonicalize_slices(const extents<IndexType, Extents...>& src,
SliceSpecifiers... slices);
Constraints:
sizeof...(SliceSpecifiers) equals
sizeof...(Extents). Mandates: For each rank index
k of
src:
- SliceSpecifiers...[k]
is a submdspan slice type for IndexType, and
- decltype(canonical-slice<IndexType>(slices...[k]))
is a valid submdspan slice type for the kth extent of
extents<IndexType, Extents...>.
Preconditions: For each rank index
k of
src,
canonical-slice<IndexType>(slices...[k])
is a valid
submdspan slice for the
kth extent of
src. Returns:
make_tuple(canonical-slice<IndexType>(slices)...).