dune-typetree  2.5.0
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Dune::TypeTree::HybridTreePath< T > Class Template Reference

A hybrid version of TreePath that supports both compile time and run time indices. More...

#include <dune/typetree/treepath.hh>

Public Types

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

Public Member Functions

constexpr HybridTreePath ()
 Default constructor. More...
 
constexpr HybridTreePath (const HybridTreePath &tp)=default
 
constexpr HybridTreePath (HybridTreePath &&tp)=default
 
constexpr HybridTreePath (std::tuple< T... > t)
 Constructor from a std::tuple More...
 
template<typename... U, typename std::enable_if< = = sizeof...(T)>
constexpr HybridTreePath (U... t)
 Constructor from arguments. More...
 

Static Public Member Functions

static constexpr index_sequence enumerate ()
 Returns an index_sequence for enumerating the components of this HybridTreePath. More...
 

Detailed Description

template<typename... T>
class Dune::TypeTree::HybridTreePath< T >

A hybrid version of TreePath that supports both compile time and run time indices.

A HybridTreePath supports storing a combination of run time and compile time indices. This makes it possible to store the tree path to a tree node inside the tree node itself, even if the path contains one or more PowerNodes, where each child must have exactly the same type. At the same time, as much information as possible is kept accessible at compile time, allowing for more efficient algorithms.

Member Typedef Documentation

◆ index_sequence

template<typename... T>
using Dune::TypeTree::HybridTreePath< T >::index_sequence = std::index_sequence_for<T...>

An index_sequence for the entries in this HybridTreePath.

Constructor & Destructor Documentation

◆ HybridTreePath() [1/5]

template<typename... T>
constexpr Dune::TypeTree::HybridTreePath< T >::HybridTreePath ( )
inline

Default constructor.

◆ HybridTreePath() [2/5]

template<typename... T>
constexpr Dune::TypeTree::HybridTreePath< T >::HybridTreePath ( const HybridTreePath< T > &  tp)
default

◆ HybridTreePath() [3/5]

template<typename... T>
constexpr Dune::TypeTree::HybridTreePath< T >::HybridTreePath ( HybridTreePath< T > &&  tp)
default

◆ HybridTreePath() [4/5]

template<typename... T>
constexpr Dune::TypeTree::HybridTreePath< T >::HybridTreePath ( std::tuple< T... >  t)
inlineexplicit

Constructor from a std::tuple

◆ HybridTreePath() [5/5]

template<typename... T>
template<typename... U, typename std::enable_if< = = sizeof...(T)>
constexpr Dune::TypeTree::HybridTreePath< T >::HybridTreePath ( U...  t)
inlineexplicit

Constructor from arguments.

Member Function Documentation

◆ enumerate()

template<typename... T>
static constexpr index_sequence Dune::TypeTree::HybridTreePath< T >::enumerate ( )
inlinestatic

Returns an index_sequence for enumerating the components of this HybridTreePath.


The documentation for this class was generated from the following file: