Dune Core Modules (2.10.0)

Dune::Std::extents< IndexType, exts > Class Template Reference

Multidimensional index space with dynamic and static extents. More...

#include <dune/common/std/extents.hh>

Public Member Functions

extents constructors
constexpr extents () noexcept=default
 The default constructor requires that all exts are not Std::dynamic_extent.
 
template<class... IndexTypes, std::enable_if_t<(... &&std::is_convertible_v< IndexTypes, index_type >), int > = 0, std::enable_if_t<(sizeof...(IndexTypes)==rank()||sizeof...(IndexTypes)==rank_dynamic()), int > = 0, std::enable_if_t<(... &&std::is_nothrow_constructible_v< index_type, IndexTypes >), int > = 0>
constexpr extents (IndexTypes... e) noexcept
 Set all extents by the given integral sequence [[pre: all static extents correspond to the given value e]].
 
template<class I , std::size_t N, std::enable_if_t< std::is_convertible_v< I, index_type >, int > = 0, std::enable_if_t<(N==rank()||N==rank_dynamic()), int > = 0>
constexpr extents (const std::array< I, N > &e) noexcept
 Set all dynamic extents by the given integral array [[pre: all static extents correspond to the given values in e]].
 
template<class I , std::size_t N, std::enable_if_t< std::is_convertible_v< I, index_type >, int > = 0, std::enable_if_t<(N==rank()||N==rank_dynamic()), int > = 0, std::enable_if_t< std::is_nothrow_constructible_v< index_type, const I & >, int > = 0>
constexpr extents (Std::span< I, N > e) noexcept
 Set all dynamic extents by the given integral array [[pre: all static extents correspond to the given values in e]].
 
template<class I , std::size_t... e, std::enable_if_t<(sizeof...(e)==rank()), int > = 0, std::enable_if_t<((e==Std::dynamic_extent||exts==Std::dynamic_extent||e==exts) &&...), int > = 0>
constexpr extents (const extents< I, e... > &other) noexcept
 

Friends

template<class OtherIndexType , std::size_t... otherExts>
constexpr bool operator== (const extents &a, const extents< OtherIndexType, otherExts... > &b) noexcept
 Compare two extents by their rank and all individual extents.
 

Observers

[mdspan.extents.obs], observers of the multidimensional index space

static constexpr rank_type rank () noexcept
 The total number of dimensions.
 
static constexpr rank_type rank_dynamic () noexcept
 The number of dimensions with dynamic extent.
 
static constexpr std::size_t static_extent (rank_type r) noexcept
 Return the static extent of dimension r or Std::dynamic_extent
 
constexpr index_type extent (rank_type r) const noexcept
 Return the extent of dimension i
 

Detailed Description

template<class IndexType, std::size_t... exts>
class Dune::Std::extents< IndexType, exts >

Multidimensional index space with dynamic and static extents.

This class template represents a multidimensional index space of rank equal to sizeof...(exts). Each extent might be specified as a template parameter or as a dynamic parameter in the constructor.

Template Parameters
IndexTypeAn integral type other than bool
exts...Each element of exts is either Std::dynamic_extent or a representable value of type IndexType.

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Dec 26, 23:30, 2024)