|
dune-typetree 2.9.1
|
Loading...
Searching...
No Matches
powernode.hh
Go to the documentation of this file.
253 // * the first argument is not a valid flat index, i.e. either a std::size_t or an index_constant.
258 // We have to do a lazy lookup of the return type after SFINAE has succeeded, otherwise the return
354 static_assert(degree() == sizeof...(Children), "PowerNode constructor is called with incorrect number of children");
364 static_assert(degree() == 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:145
T & child(std::size_t i)
Returns the i-th child.
Definition powernode.hh:177
const T & child(index_constant< i >={}) const
Returns the i-th child (const version).
Definition powernode.hh:115
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:161
std::shared_ptr< T > childStorage(index_constant< i >={})
Returns the storage of the i-th child.
Definition powernode.hh:126
PowerNode(T &t1, T &t2,...)
Initialize all children with the passed-in objects.
Definition powernode.hh:343
const NodeStorage & nodeStorage() const
Definition powernode.hh:234
std::array< std::shared_ptr< T >, k > NodeStorage
The type used for storing the children.
Definition powernode.hh:79
std::shared_ptr< const T > childStorage(index_constant< i >={}) const
Returns the storage of the i-th child (const version).
Definition powernode.hh:137
PowerNode(T &t, bool distinct_objects=true)
Initialize all children with copies of a storage object constructed from the parameter t.
Definition powernode.hh:326
PowerNodeTag NodeTag
The type tag that describes a PowerNode.
Definition powernode.hh:73
const T & child(std::size_t i) const
Returns the i-th child (const version).
Definition powernode.hh:187
std::shared_ptr< const T > childStorage(std::size_t i) const
Returns the storage of the i-th child (const version).
Definition powernode.hh:207
static const std::size_t CHILDREN
The number of children.
Definition powernode.hh:65
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:228
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:321
T & child(index_constant< i >={})
Returns the i-th child.
Definition powernode.hh:104
ImplementationDefined & child(Indices... indices)
Returns the child given by the list of indices.
Definition powernode.hh:268
void setChild(std::size_t i, T &&t)
Store the passed value in i-th child.
Definition powernode.hh:221
void setChild(T &&t, index_constant< i >={})
Store the passed value in i-th child.
Definition powernode.hh:153
const ImplementationDefined & child(Indices... indices)
Returns the child given by the list of indices.
Definition powernode.hh:288
void setChild(std::size_t i, T &t)
Sets the i-th child to the passed-in value.
Definition powernode.hh:214
std::shared_ptr< T > childStorage(std::size_t i)
Returns the storage of the i-th child.
Definition powernode.hh:197
Access to the type and storage type of the i-th child.
Definition powernode.hh:85
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