|
dune-common 2.11
|
A hybrid multi-index class that supports both compile time and run time indices. More...
#include <dune/common/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 ()=default |
| constexpr | HybridMultiIndex (const HybridMultiIndex &tp)=default |
| constexpr | HybridMultiIndex (HybridMultiIndex &&tp)=default |
| constexpr HybridMultiIndex & | operator= (const HybridMultiIndex &tp)=default |
| constexpr HybridMultiIndex & | operator= (HybridMultiIndex &&tp)=default |
| 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. | |
| 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. | |
Friends | |
| template<class... Head, class... Other> | |
| constexpr auto | join (const HybridMultiIndex< Head... > &, const Other &...) |
Detailed Description
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 Typedef Documentation
◆ index_sequence
| using Dune::HybridMultiIndex< T >::index_sequence = std::index_sequence_for<T...> |
An index_sequence for the entries in this HybridMultiIndex.
Constructor & Destructor Documentation
◆ HybridMultiIndex() [1/5]
|
constexprdefault |
◆ HybridMultiIndex() [2/5]
|
constexprdefault |
◆ HybridMultiIndex() [3/5]
|
constexprdefault |
◆ HybridMultiIndex() [4/5]
|
inlineexplicitconstexpr |
Constructor from a std::tuple
◆ HybridMultiIndex() [5/5]
requires ((sizeof...(T) > 0 && sizeof...(I) == sizeof...(T)) and ((std::is_integral_v<I> or Dune::IsIntegralConstant<I>::value) && ...))
|
inlineexplicitconstexpr |
Constructor from arguments.
Member Function Documentation
◆ back()
requires (n > 0 && n == sizeof...(T))
|
inlineconstexpr |
Get the last index value. Only available in non-empty multi-indices.
◆ element() [1/2]
requires (sizeof...(T) > i)
|
inlineconstexpr |
Get the last index value.
◆ element() [2/2]
|
inlineconstexpr |
Get the index value at position pos.
◆ enumerate()
|
inlinestaticconstexpr |
Returns an index_sequence for enumerating the components of this HybridMultiIndex.
◆ front()
requires (n > 0 && n == sizeof...(T))
|
inlineconstexpr |
Get the first index value. Only available in non-empty multi-indices.
◆ get()
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.
◆ max_size()
|
inlinestaticconstexpr |
Get the size (length) of this multi-index.
◆ operator=() [1/2]
|
constexprdefault |
◆ operator=() [2/2]
|
constexprdefault |
◆ operator[]() [1/2]
requires (sizeof...(T) > i)
|
inlineconstexpr |
Get the index value at position pos.
◆ operator[]() [2/2]
|
inlineconstexpr |
Get the index value at position pos.
◆ size()
|
inlinestaticconstexpr |
Get the size (length) of this multi-index.
Friends And Related Symbol Documentation
◆ join
|
friend |
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8