S is a specialization of strided_slice and
is_convertible_v<X, IndexType> is true for X denoting
S::offset_type,
S::extent_type, and
S::stride_type; or
Given a signed or unsigned integer type IndexType,
a type S is a
canonical submdspan index type for IndexType
if S is either IndexType or constant_wrapper<v>
for some value v of type IndexType,
such that v is greater than or equal to zero.
Given an object e of type E that is a specialization of extents, and
an object s of type S
that is a canonical submdspan slice type for E::index_type,
the submdspan slice range of s for the kth extent of e
is:
Given a type E that is a specialization of extents,
a type S is a
valid submdspan slice type for the kth extent of E
if S is a canonical slice type for E::index_type, and
for x equal to E::static_extent(k),
either x is equal to dynamic_extent; or
if both S::offset_type and S::extent_type
are specializations of constant_wrapper,
then S::offset_type::value + S::extent_type::value
is less than or equal to x; or