DUNE PDELab (unstable)

Dune::HybridMultiIndex< T > Class Template Reference

A hybrid multi-index class that supports both compile time and run time indices. More...

#include <dune/typetree/hybridmultiindex.hh>

Public Types

using index_sequence = std::index_sequence_for< T... >
 An index_sequence for the entries in this HybridMultiIndex.
 

Public Member Functions

constexpr HybridMultiIndex (std::tuple< T... > t)
 Constructor from a std::tuple
 
template<typename... I>
requires ((sizeof...(T) > 0 && sizeof...(I) == sizeof...(T)) and ((std::is_integral_v<I> or Dune::IsIntegralConstant<I>::value) && ...))
constexpr HybridMultiIndex (I... i)
 Constructor from arguments.
 
template<std::size_t i>
requires (sizeof...(T) > i)
constexpr auto get () const
 Get the index value at position pos. More...
 
template<std::size_t i>
requires (sizeof...(T) > i)
constexpr auto operator[] (Dune::index_constant< i >) const
 Get the index value at position pos.
 
constexpr std::size_t operator[] (std::size_t pos) const
 Get the index value at position pos.
 
template<std::size_t i>
requires (sizeof...(T) > i)
constexpr auto element (Dune::index_constant< i > pos={}) const
 Get the last index value.
 
constexpr std::size_t element (std::size_t pos) const
 Get the index value at position pos.
 
template<std::size_t n = sizeof...(T)>
requires (n > 0 && n == sizeof...(T))
constexpr auto front () const
 Get the first index value. Only available in non-empty multi-indices.
 
template<std::size_t n = sizeof...(T)>
requires (n > 0 && n == sizeof...(T))
constexpr auto back () const
 Get the last index value. Only available in non-empty multi-indices.
 

Static Public Member Functions

static constexpr index_sequence enumerate ()
 Returns an index_sequence for enumerating the components of this HybridMultiIndex.
 
static constexpr std::size_t size ()
 Get the size (length) of this multi-index.
 
static constexpr std::size_t max_size ()
 Get the size (length) of this multi-index.
 

Detailed Description

template<typename... T>
class Dune::HybridMultiIndex< T >

A hybrid multi-index class that supports both compile time and run time indices.

A HybridMultiIndex supports storing a combination of run time and compile time indices. This allows to construct multi-indices that provide sufficient information for accessing nested multi-type containers.

Note
Internally all indices are stored as std::size_t or std::integral_constant<std::size_t,v>. The latter is the same as Dune::index_constant<v>.

Member Function Documentation

◆ get()

template<typename... T>
template<std::size_t i>
requires (sizeof...(T) > i)
constexpr auto Dune::HybridMultiIndex< T >::get ( ) const
inlineconstexpr

Get the index value at position pos.

The get member function is required by the std-tuple-protocol which e.g. enables structured bindings.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (Sep 3, 22:42, 2025)