dune-common 2.11
Loading...
Searching...
No Matches
treepath.hh File Reference
#include <cstddef>
#include <cassert>
#include <type_traits>
#include <dune/common/documentation.hh>
#include <dune/common/typetraits.hh>
#include <dune/common/indices.hh>
#include <dune/common/hybridmultiindex.hh>

Go to the source code of this file.

Namespaces

namespace  Dune
 Dune namespace
namespace  Dune::TypeTree
namespace  Dune::TypeTree::Literals

Typedefs

template<typename... T>
using Dune::TypeTree::TreePath = Dune::HybridMultiIndex<T...>
 A type for representing tree paths that supports both compile time and run time indices.

Functions

template<typename... T>
requires (((std::is_integral_v<T> or Dune::IsIntegralConstant<T>::value) && ...))
constexpr auto Dune::TypeTree::treePath (const T &... t)
 Constructs a new TreePath from the given indices.
template<char... digits>
constexpr auto Dune::TypeTree::Literals::operator""_tp ()
 Literal to create treepath.
template<typename... T>
constexpr auto Dune::TypeTree::back (const HybridMultiIndex< T... > &tp) -> decltype(tp.back())
 Returns a copy of the last element of the HybridMultiIndex.
template<typename... T>
constexpr auto Dune::TypeTree::front (const HybridMultiIndex< T... > &tp) -> decltype(tp.front())
 Returns a copy of the first element of the HybridMultiIndex.
template<typename... T>
constexpr HybridMultiIndex< T..., std::size_t > Dune::TypeTree::push_back (const HybridMultiIndex< T... > &tp, std::size_t i)
 Appends a run time index to a HybridMultiIndex.
template<typename... T>
constexpr HybridMultiIndex< std::size_t, T... > Dune::TypeTree::push_front (const HybridMultiIndex< T... > &tp, std::size_t i)
 Prepends a run time index to a HybridMultiIndex.
template<typename I, typename... T>
requires (sizeof...(T) > 0)
constexpr auto Dune::TypeTree::accumulate_back (const HybridMultiIndex< T... > &tp, I i)
 Hybrid utility that accumulates to the back of a multi-index.
template<typename I, typename... T>
requires (sizeof...(T) > 0)
constexpr auto Dune::TypeTree::accumulate_front (const HybridMultiIndex< T... > &tp, I i)
 Hybrid utility that accumulates to the front of a multi-index.
template<class... Head, class... Other>
constexpr auto Dune::TypeTree::join (const HybridMultiIndex< Head... > &head, const Other &... tail)
 Join two hybrid multi-indices into one.
template<class... T>
constexpr auto Dune::TypeTree::reverse (const HybridMultiIndex< T... > &tp)
 Reverses the order of the elements in the multi-index.
template<class... T>
requires (sizeof...(T) > 0)
constexpr auto Dune::TypeTree::pop_front (const HybridMultiIndex< T... > &tp)
 Removes first index on a HybridMultiIndex.
template<class... T>
requires (sizeof...(T) > 0)
constexpr auto Dune::TypeTree::pop_back (const HybridMultiIndex< T... > &tp)
 Removes last index on a HybridMultiIndex.