std:: extents, std:: dextents, std:: dims
From cppreference.net
|
Определено в заголовочном файле
<mdspan>
|
||
|
template
<
class
IndexType,
std::
size_t
...
Extents
>
class extents ; |
(1) | (начиная с C++23) |
|
template
<
class
IndexType,
std::
size_t
Rank
>
using dextents = /* см. ниже */ |
(2) | (начиная с C++23) |
|
template
<
std::
size_t
Rank,
class
IndexType
=
std::
size_t
>
using dims = std :: dextents < IndexType, Rank > ; |
(3) | (начиная с C++26) |
1)
Представляет многомерное индексное пространство с рангом, равным
sizeof...
(
Extents
)
.
2)
Удобный псевдоним-шаблон для полностью динамического
extents
. Пусть
d
обозначает
std::
dynamic_extent
, тогда каждая специализация
dextents
<
IndexType, Rank
>
эквивалентна
extents
<
IndexType
/*, d, d, ..., d*/
>
(т.е.
d
повторяется всего
Rank
раз).
3)
Удобный шаблон псевдонима для полностью динамического
extents
с
std::
size_t
в качестве типа индекса по умолчанию.
Каждая специализация
extents
моделирует
regular
и является
TriviallyCopyable
.
Содержание |
Параметры шаблона
| IndexType | - |
тип каждого нединамического
Extents
. Должен быть знаковым или беззнаковым целочисленным типом. В противном случае программа некорректна
|
| Extents | - |
представляет экстент (размер целочисленного интервала) для каждого ранга индекса. Каждый его элемент либо равен
std::
dynamic_extent
(в этом случае он представляет
динамический экстент
и размер экстента будет определяться динамически), либо представим в виде значения типа
IndexType
(тогда он представляет
статический экстент
и размер экстента равен его значению), иначе программа некорректна
|
| Rank | - |
обозначает ранг полностью динамического
extents
|
Типы членов
| Тип члена | Определение |
index_type
|
IndexType
|
size_type
|
std:: make_unsigned_t < index_type > |
rank_type
|
std::size_t |
Члены данных
| Имя члена | Определение |
std::
array
<
index_type, rank_dynamic
(
)
>
dynamic-extents
(приватный)
|
Массив, который хранит размер каждого динамического измерения.
( объект-член только для демонстрации* ) |
Функции-члены
конструирует
extents
(публичная функция-член) |
|
Наблюдатели |
|
|
[static]
|
возвращает статический ранг
extents
(публичная статическая функция-член) |
|
[static]
|
возвращает динамический ранг
extents
(публичная статическая функция-член) |
|
[static]
|
возвращает статический размер измерения
extents
по указанному индексу ранга
(публичная статическая функция-член) |
возвращает динамический размер измерения
extents
по указанному индексу ранга
(публичная функция-член) |
|
Вспомогательные функции |
|
возвращает произведение размеров измерений в диапазоне
[
0
,
i
)
( функция-член только для демонстрации* ) |
|
возвращает произведение размеров измерений в диапазоне
[
i
+
1
,
rank
(
)
)
( функция-член только для демонстрации* ) |
|
|
преобразует входное значение в целочисленный тип
( функция-член только для демонстрации* ) |
|
|
(private)
|
возвращает количество динамических измерений ниже указанного индекса ранга
( функция-член только для демонстрации* ) |
|
(private)
|
возвращает число
r
такое, что в диапазоне
[
0
,
r
+
1
)
содержится ровно
i + 1
динамических измерений для заданного аргумента
i
( функция-член только для демонстрации* ) |
Функции, не являющиеся членами класса
|
(C++23)
|
сравнивает базовые размерности в каждом измерении двух
extents
(функция) |
Руководства по выводу (C++23)
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
(C++11)
|
получает количество измерений типа массива
(шаблон класса) |
|
(C++11)
|
получает размер типа массива по указанному измерению
(шаблон класса) |