Defined in header <mdspan>  

template< class IndexType, std::size_t... Extents > class extents;  (1)  (since C++23) 
template< class IndexType, std::size_t Rank > class dextents = /* see below */  (2)  (since C++23) 
sizeof...(Extents)
. extents
. Let d
denote std::dynamic_extent
, each specialization of it dextents<TypeIndex, Rank>
is equivalent to extents<IndexType, /* d, d, ..., d (d repeats Rank times in total)*/>
.Each specialization of extents
models regular
and is TriviallyCopyable.
IndexType    the type of each nondynamic Extents . Shall be a signed or unsigned integer type. Otherwise, the program is illformed. 
Extents    represents extent (size of an integer interval) for each rank index. Each element of it is either equal to std::dynamic_extent (in this case, it represents a dynamic extent and the extent size will be determined dynamically), or is representable as a value of type IndexType (then it represents a static extent and the extent size is just the value of it), or else the program is illformed. 
Rank    denotes the rank of an alldynamic extents . 
Member type  Definition 

index_type  IndexType 
size_type  std::make_unsigned_t<index_type> 
rank_type  std::size_t 
Typical implementations hold only one nonstatic data member:
dynamicextents
of type std::array<index_type, rank_dynamic()>
, which stores the size of each dynamic extents. The name is for exposition only. constructs an extents (public member function) 

Observers 

[static]  returns the static rank of an extents (public static member function) 
[static]  returns the dynamic rank of an extents (public static member function) 
[static]  returns static extent size of an extents at a certain rank index (public static member function) 
returns dynamic extent size of an extents at a certain rank index (public member function) 

Public expositiononly helpers 

returns the product of extent size in range [ 0, i) (expositiononly member function) 

returns the product of extents size in range [ i + 1, rank()) (expositiononly member function) 

casts the input into an integer type (expositiononly member function) 

Private expositiononly helpers 

returns the number of dynamic extents below a certain rank index (expositiononly member function) 

returns the number r such that in range [ 0, r + 1) there is exactly i + 1 dynamic extents for a certain argument i (expositiononly member function) 
(C++23)  compare underlying extents in each dimension of two extents (function) 
(C++11)  obtains the number of dimensions of an array type (class template) 
(C++11)  obtains the size of an array type along a specified dimension (class template) 
© cppreference.com
Licensed under the Creative Commons AttributionShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/container/mdspan/extents