dune-typetree
2.6-rc1
|
![]() |
Namespaces | |
Dune::TypeTree::TreePathType | |
Functions | |
template<std::size_t... i> | |
constexpr std::size_t | Dune::TypeTree::treePathSize (const TreePath< i... > &) |
Returns the size (number of components) of the given TreePath . More... | |
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<std::size_t... i> | |
std::ostream & | Dune::TypeTree::operator<< (std::ostream &os, const TreePath< i... > &tp) |
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 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> | |
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> | |
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> | |
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> | |
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> | |
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> | |
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> | |
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> | |
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... | |
auto Dune::TypeTree::back | ( | const HybridTreePath< T... > & | tp | ) | -> decltype(treePathEntry<sizeof...(T)-1>(tp)) |
Returns a copy of the last element of the HybridTreePath
.
As HybridTreePath
instances should not be mutated after their creation, this function returns a copy of the value. As values are either std::integral_constant
or std::size_t
, that's just as cheap as returning a reference.
auto Dune::TypeTree::front | ( | const HybridTreePath< T... > & | tp | ) | -> decltype(treePathEntry<0>(tp)) |
Returns a copy of the first element of the HybridTreePath
.
As HybridTreePath
instances should not be mutated after their creation, this function returns a copy of the value. As values are either std::integral_constant
or std::size_t
, that's just as cheap as returning a reference.
constexpr HybridTreePath<T...> Dune::TypeTree::hybridTreePath | ( | const T &... | t | ) |
Constructs a new HybridTreePath
from the given indices.
This function returns a new HybridTreePath
with the given index values. It exists mainly to avoid having to manually specify the exact type of the new object.
std::ostream& Dune::TypeTree::operator<< | ( | std::ostream & | os, |
const TreePath< i... > & | tp | ||
) |
std::ostream& Dune::TypeTree::operator<< | ( | std::ostream & | os, |
const HybridTreePath< T... > & | tp | ||
) |
Dumps a HybridTreePath
to a stream.
void Dune::TypeTree::print_tree_path | ( | std::ostream & | os | ) |
void Dune::TypeTree::print_tree_path | ( | std::ostream & | os | ) |
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
.
This function returns a new HybridTreePath
with the run time index i
appended.
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
.
This function returns a new HybridTreePath
with the compile time index i
appended.
The value for the new entry can be passed either as a template parameter or as an index_constant
:
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
.
This function returns a new HybridTreePath
with the run time index i
prepended.
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
.
This function returns a new HybridTreePath
with the compile time index i
prepended.
The value for the new entry can be passed either as a template parameter or as an index_constant
:
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
.
As HybridTreePath
instances should not be mutated after their creation, this function returns a copy of the value. As values are either std::integral_constant
or std::size_t
, that's just as cheap as returning a reference.
The index for the entry can be passed either as a template parameter or as an index_constant
:
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
.
This function always returns the actual index value, irrespective of whether the entry is a compile time index or a run time index.
The index for the entry can be passed either as a template parameter or as an index_constant
:
constexpr std::size_t Dune::TypeTree::treePathSize | ( | const TreePath< i... > & | ) |
Returns the size (number of components) of the given TreePath
.
constexpr std::size_t Dune::TypeTree::treePathSize | ( | const HybridTreePath< T... > & | ) |
Returns the size (number of components) of the given HybridTreePath
.