dune-typetree  2.8-git
Classes | Namespaces | Typedefs | Enumerations | Functions
treepath.hh File Reference
#include <cstddef>
#include <iostream>
#include <dune/common/documentation.hh>
#include <dune/common/typetraits.hh>
#include <dune/common/indices.hh>
#include <dune/common/hybridutilities.hh>
#include <dune/typetree/fixedcapacitystack.hh>
#include <dune/typetree/utility.hh>

Go to the source code of this file.

Classes

class  Dune::TypeTree::HybridTreePath< T >
 A hybrid version of TreePath that supports both compile time and run time indices. More...
 
struct  Dune::TypeTree::TreePathSize< HybridTreePath< index_constant< i >... > >
 
struct  Dune::TypeTree::TreePathPushBack< HybridTreePath< index_constant< i >... >, k >
 
struct  Dune::TypeTree::TreePathPushFront< HybridTreePath< index_constant< i >... >, k >
 
struct  Dune::TypeTree::TreePathBack< HybridTreePath< index_constant< k > > >
 
struct  Dune::TypeTree::TreePathBack< HybridTreePath< index_constant< j >, index_constant< k >, index_constant< l >... > >
 
struct  Dune::TypeTree::TreePathFront< HybridTreePath< index_constant< k >, index_constant< i >... > >
 
struct  Dune::TypeTree::TreePathPopBack< HybridTreePath< index_constant< k > >, i... >
 
struct  Dune::TypeTree::TreePathPopBack< HybridTreePath< index_constant< j >, index_constant< k >, index_constant< l >... >, i... >
 
struct  Dune::TypeTree::TreePathPopFront< HybridTreePath< index_constant< k >, index_constant< i >... > >
 
struct  Dune::TypeTree::TreePathConcat< HybridTreePath< index_constant< i >... >, HybridTreePath< index_constant< k >... > >
 

Namespaces

 Dune
 
 Dune::TypeTree
 
 Dune::TypeTree::TreePathType
 

Typedefs

template<std::size_t... i>
using Dune::TypeTree::TreePath = HybridTreePath< Dune::index_constant< i >... >
 
template<std::size_t... i>
using Dune::TypeTree::StaticTreePath = HybridTreePath< Dune::index_constant< i >... >
 

Enumerations

enum  Dune::TypeTree::TreePathType::Type { Dune::TypeTree::TreePathType::fullyStatic , Dune::TypeTree::TreePathType::dynamic }
 

Functions

template<std::size_t... i>
void Dune::TypeTree::print_tree_path (std::ostream &os)
 
template<std::size_t k, std::size_t... i>
void Dune::TypeTree::print_tree_path (std::ostream &os)
 
template<typename... T>
constexpr HybridTreePath< T... > Dune::TypeTree::hybridTreePath (const T &... t)
 Constructs a new HybridTreePath from the given indices. More...
 
template<typename... T>
constexpr HybridTreePath< T... > Dune::TypeTree::treePath (const T &... t)
 Constructs a new HybridTreePath from the given indices. More...
 
template<typename... T>
constexpr std::size_t Dune::TypeTree::treePathSize (const HybridTreePath< T... > &)
 Returns the size (number of components) of the given HybridTreePath. More...
 
template<std::size_t i, typename... T>
constexpr auto Dune::TypeTree::treePathEntry (const HybridTreePath< T... > &tp, index_constant< i >={}) -> typename std::decay< decltype(std::get< i >(tp._data))>::type
 Returns a copy of the i-th element of the HybridTreePath. More...
 
template<std::size_t i, typename... T>
constexpr std::size_t Dune::TypeTree::treePathIndex (const HybridTreePath< T... > &tp, index_constant< i >={})
 Returns the index value of the i-th element of the HybridTreePath. More...
 
template<typename... T, typename std::enable_if<(sizeof...(T) > 0), bool >::type = true>
constexpr auto Dune::TypeTree::back (const HybridTreePath< T... > &tp) -> decltype(treePathEntry< sizeof...(T) -1 >(tp))
 Returns a copy of the last element of the HybridTreePath. More...
 
template<typename... T>
constexpr auto Dune::TypeTree::front (const HybridTreePath< T... > &tp) -> decltype(treePathEntry< 0 >(tp))
 Returns a copy of the first element of the HybridTreePath. More...
 
template<typename... T>
constexpr HybridTreePath< T..., std::size_t > Dune::TypeTree::push_back (const HybridTreePath< T... > &tp, std::size_t i)
 Appends a run time index to a HybridTreePath. More...
 
template<std::size_t i, typename... T>
constexpr HybridTreePath< T..., index_constant< i > > Dune::TypeTree::push_back (const HybridTreePath< T... > &tp, index_constant< i > i_={})
 Appends a compile time index to a HybridTreePath. More...
 
template<typename... T>
constexpr HybridTreePath< std::size_t, T... > Dune::TypeTree::push_front (const HybridTreePath< T... > &tp, std::size_t element)
 Prepends a run time index to a HybridTreePath. More...
 
template<std::size_t i, typename... T>
constexpr HybridTreePath< index_constant< i >, T... > Dune::TypeTree::push_front (const HybridTreePath< T... > &tp, index_constant< i > _i={})
 Prepends a compile time index to a HybridTreePath. More...
 
template<typename... T>
std::ostream & Dune::TypeTree::operator<< (std::ostream &os, const HybridTreePath< T... > &tp)
 Dumps a HybridTreePath to a stream. More...