std::mdspan<T,Extents,LayoutPolicy,AccessorPolicy>::operator[]
From cppreference.com
template
<
class... OtherIndexTypes
>
constexpr reference operator[ ] ( OtherIndexTypes... indices ) const ; |
(1) | (since C++23) |
template
<
class OtherIndexType >
constexpr reference operator[] |
(2) | (since C++23) |
template
<
class OtherIndexType >
constexpr reference operator[] |
(3) | (since C++23) |
Returns a reference to the indicesth element of the mdspan.
1) Equivalent to
return acc_.access
(ptr_, map_(
static_cast
<index_type>
(std::
move
(indices)
)...)
)
;
This overload participates in overload resolution only if:
- ( std::is_convertible_v <OtherIndexTypes, index_type> && ...) is true
- ( std::is_nothrow_constructible_v <index_type, OtherIndexTypes> && ...) is true
- sizeof...(OtherIndexTypes) == rank() is true
Let
I
be
extents_type::
index-cast
(std::move(indices))
. Then the behavior is undefined if I
is not a multidimensional index in extents(), i.e.,
map_(I) < map_.required_span_size()
is false
2,3) Let
P
be a parameter pack such that
std::is_same_v
<make_index_sequence<rank(
)
>, index_sequence<P...>>
is true, then the operator is equivalent to
return operator[](extents_type::
index-cast
(
std::as_const
(indices[P]
)
)...)
;
This overload participates in overload resolution only if:
- std::is_convertible_v < const OtherIndexType&, index_type> is true
- std::is_nothrow_constructible_v <index_type, const OtherIndexType& > is true
Parameters
indices | - | the indices of the element to access |
Return value
A reference to the element.
Example
This section is incomplete Reason: no example |
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 3974 | C++23 | overloads (2,3) did not apply extents_type:: index-cast
|
applies |
See also
This section is incomplete |