std::layout_stride::mapping<Extents>::operator()
template< class... Indices > constexpr index_type operator()( Indices... indices ) const noexcept; | (начиная с C++23) |
Преобразует многомерный индекс indices в значение смещения.
Эквивалентно return ((static_cast<index_type>(indices) * stride(P)) + ... + 0);, где P — набор, такой что std::is_same_v<std::index_sequence_for<Indices...>, std::index_sequence<P...>> является true.
Эта перегрузка участвует в разрешении перегрузки только при выполнении следующих условий:
-
sizeof...(Indices) == extents_type::rank()являетсяtrue, -
(std::is_convertible_v<Indices, index_type> && ...)являетсяtrue, и -
(std::is_nothrow_constructible_v<index_type, Indices> && ...)являетсяtrue.
Если extents_type::index-cast(i) не является многомерным индексом в extents(), поведение не определено.
Параметры
| indices | - | многомерный индекс в объекте базовых экстентов |
Возвращаемое значение
Значение смещения.
Пример
См. также
| преобразует многомерный индекс в значение смещения (открытая функция-член std::layout_left::mapping<Extents>) |
|
| преобразует многомерный индекс в значение смещения (открытая функция-член std::layout_right::mapping<Extents>) |
|
| получает доступ к элементу по указанному многомерному индексу (открытая функция-член std::mdspan<T,Extents,LayoutPolicy,AccessorPolicy>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/mdspan/layout_stride/mapping/operator()