|
dune-typetree 2.8.0
|
Loading...
Searching...
No Matches
powernode.hh
Go to the documentation of this file.
252 // * the first argument is not a valid flat index, i.e. either a std::size_t or an index_constant.
257 // We have to do a lazy lookup of the return type after SFINAE has succeeded, otherwise the return
353 static_assert(CHILDREN == sizeof...(Children), "PowerNode constructor is called with incorrect number of children");
363 static_assert(CHILDREN == sizeof...(Children), "PowerNode constructor is called with incorrect number of children");
ImplementationDefined child(Node &&node, Indices... indices)
Extracts the child of a node given by a sequence of compile-time and run-time indices.
Definition childextraction.hh:126
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Collect k instances of type T within a dune-typetree.
Definition powernode.hh:50
void setChild(T &t, index_constant< i >={})
Sets the i-th child to the passed-in value.
Definition powernode.hh:144
T & child(std::size_t i)
Returns the i-th child.
Definition powernode.hh:176
const T & child(index_constant< i >={}) const
Returns the i-th child (const version).
Definition powernode.hh:114
void setChild(std::shared_ptr< T > st, index_constant< i >={})
Sets the stored value representing the i-th child to the passed-in value.
Definition powernode.hh:160
std::shared_ptr< T > childStorage(index_constant< i >={})
Returns the storage of the i-th child.
Definition powernode.hh:125
PowerNode(T &t1, T &t2,...)
Initialize all children with the passed-in objects.
Definition powernode.hh:342
const NodeStorage & nodeStorage() const
Definition powernode.hh:233
std::array< std::shared_ptr< T >, k > NodeStorage
The type used for storing the children.
Definition powernode.hh:78
std::shared_ptr< const T > childStorage(index_constant< i >={}) const
Returns the storage of the i-th child (const version).
Definition powernode.hh:136
PowerNode(T &t, bool distinct_objects=true)
Initialize all children with copies of a storage object constructed from the parameter t.
Definition powernode.hh:325
PowerNodeTag NodeTag
The type tag that describes a PowerNode.
Definition powernode.hh:72
const T & child(std::size_t i) const
Returns the i-th child (const version).
Definition powernode.hh:186
std::shared_ptr< const T > childStorage(std::size_t i) const
Returns the storage of the i-th child (const version).
Definition powernode.hh:206
static const std::size_t CHILDREN
The number of children.
Definition powernode.hh:64
void setChild(std::size_t i, std::shared_ptr< T > st)
Sets the stored value representing the i-th child to the passed-in value.
Definition powernode.hh:227
static const bool isComposite
Mark this class as a non composite in the dune-typetree.
Definition powernode.hh:61
static const bool isLeaf
Mark this class as non leaf in the dune-typetree.
Definition powernode.hh:55
static const bool isPower
Mark this class as a power in the dune-typetree.
Definition powernode.hh:58
PowerNode(const NodeStorage &children)
Initialize the PowerNode with a copy of the passed-in storage type.
Definition powernode.hh:320
T & child(index_constant< i >={})
Returns the i-th child.
Definition powernode.hh:103
ImplementationDefined & child(Indices... indices)
Returns the child given by the list of indices.
Definition powernode.hh:267
void setChild(std::size_t i, T &&t)
Store the passed value in i-th child.
Definition powernode.hh:220
void setChild(T &&t, index_constant< i >={})
Store the passed value in i-th child.
Definition powernode.hh:152
const ImplementationDefined & child(Indices... indices)
Returns the child given by the list of indices.
Definition powernode.hh:287
void setChild(std::size_t i, T &t)
Sets the i-th child to the passed-in value.
Definition powernode.hh:213
std::shared_ptr< T > childStorage(std::size_t i)
Returns the storage of the i-th child.
Definition powernode.hh:196
Access to the type and storage type of the i-th child.
Definition powernode.hh:84
T begin(T... args)
T end(T... args)
T fill(T... args)
T reduce(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8