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 >
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)
requires (sizeof...(T) > i)
|
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:
- dune/typetree/hybridmultiindex.hh
