Namespaces
Variants

std::extents<IndexType,Extents...>:: extents

From cppreference.net
constexpr extents ( ) = default ;
(1) (начиная с C++23)
template < class OtherIndexType, std:: size_t ... OtherExtents >

constexpr explicit ( /*см. ниже*/ )

extents ( const std:: extents < OtherIndexType, OtherExtents... > & other ) noexcept ;
(2) (начиная с C++23)
template < class ... OtherIndexTypes >
constexpr explicit extents ( OtherIndexTypes... exts ) noexcept ;
(3) (начиная с C++23)
template < class OtherIndexType, std:: size_t N >

constexpr explicit ( N ! = rank_dynamic ( ) )

extents ( std:: span < OtherIndexType, N > exts ) noexcept ;
(4) (начиная с C++23)
template < class OtherIndexType, std:: size_t N >

constexpr explicit ( N ! = rank_dynamic ( ) )

extents ( const std:: array < OtherIndexType, N > & exts ) noexcept ;
(5) (начиная с C++23)

Создайте extents . Можно создать extents только из динамических экстентов, которые сохраняют все значения, или из всех экстентов с предусловием.

1) Конструктор по умолчанию. Инициализирует все динамические размеры нулевыми значениями.
2) Преобразование из другого объекта extents . После конструирования, * this == other равно true .
  • Поведение не определено, если
  • other. extent ( r ) ! = static_extent ( r ) для любого r , для которого static_extent ( r ) представляет статическую размерность, или
  • other. extent ( r ) не может быть представлено как значение типа IndexType для любого значения ранга r в other .
  • Эта перегрузка участвует в разрешении перегрузки только если
  • Этот конструктор является explicit , если
3) Пусть N будет sizeof... ( exts ) и exts_arr будет std:: array < IndexType, N > { static_cast < IndexType > ( std :: move ( exts ) ) ... } , эквивалентно extents ( exts_arr ) .
  • Эта перегрузка участвует в разрешении перегрузки только если
  • Поведение не определено, если
  • N ! = rank_dynamic ( ) и exts_arr [ r ] не равно static_extent ( r ) для любого r , для которого static_extent ( r ) представляет статическую размерность, или
  • элемент в exts отрицателен или не представим в качестве значения типа IndexType .
4,5) Если N равно rank_dynamic ( ) , для всех d в [ 0 , rank_dynamic ( ) ) , прямое-не-списковое-инициализирует dynamic-extents [ d ] с помощью std:: as_const ( exts [ d ] ) . Иначе, для всех d в [ 0 , rank_dynamic ( ) ) , прямое-не-списковое-инициализирует dynamic-extents [ d ] с помощью std:: as_const ( exts [ dynamic-index-inv ( d ) ] ) .
  • Эта перегрузка участвует в разрешении перегрузки только если
  • Поведение не определено, если
  • N ! = rank_dynamic ( ) и exts [ r ] не равно static_extent ( r ) для любого r , для которого static_extent ( r ) представляет статическую размерность, или
  • exts [ r ] отрицательно или не представимо как значение типа IndexType для любого индекса размерности r .

Параметры

other - другой extents для преобразования из
exts - представляет размерности

Пример

Смотрите также