Dune Core Modules (2.9.0)

Dune::TypeTree::FilteredCompositeNode< Node, Filter > Class Template Reference

Base class for composite nodes representing a filtered view on an underlying composite node. More...

#include <dune/typetree/filteredcompositenode.hh>

Classes

struct  Child
 Access to the type and storage type of the i-th child. More...
 

Public Types

typedef CompositeNodeTag NodeTag
 The type tag that describes a CompositeNode.
 
typedef mapped_children::NodeStorage NodeStorage
 The type used for storing the children.
 
typedef mapped_children::ChildTypes ChildTypes
 A tuple storing the types of all children.
 

Public Member Functions

Child Access
template<std::size_t k, typename std::enable_if< lazy_enable< k >::value, int >::type = 0>
auto & child (index_constant< k >={})
 Returns the k-th child. More...
 
template<std::size_t k>
const auto & child (index_constant< k >={}) const
 Returns the k-th child (const version). More...
 
template<std::size_t k, typename std::enable_if< lazy_enable< k >::value, int >::type = 0>
auto childStorage (index_constant< k >={})
 Returns the storage of the k-th child. More...
 
template<std::size_t k>
auto childStorage (index_constant< k >={}) const
 Returns the storage of the k-th child (const version). More...
 
template<std::size_t k, class ChildType >
void setChild (ChildType &&child, typename std::enable_if< lazy_enable< k >::value, void * >::type=0)
 Sets the k-th child to the passed-in value.
 
Constructors
 FilteredCompositeNode (std::shared_ptr< Node > node)
 Initialize the CompositeNode with copies of the passed in Storage objects.
 
 FilteredCompositeNode (Node &node)
 Initialize the CompositeNode with a copy of the passed-in storage type.
 

Static Public Attributes

static const bool isLeaf = false
 Mark this class as non leaf in the dune-typetree.
 
static const bool isPower = false
 Mark this class as a non power in the dune-typetree.
 
static const bool isComposite = true
 Mark this class as a composite in the dune-typetree.
 
static const std::size_t CHILDREN = filter_result::size
 The number of children.
 

Protected Member Functions

Access to unfiltered node
template<bool enabled = !nodeIsConst>
std::enable_if< enabled, Node & >::type unfiltered ()
 Returns the unfiltered node. More...
 
const Node & unfiltered () const
 Returns the unfiltered node (const version). More...
 
template<bool enabled = !nodeIsConst>
std::enable_if< enabled, std::shared_ptr< Node > >::type unfilteredStorage ()
 Returns the storage object of the unfiltered node. More...
 
std::shared_ptr< const Node > unfilteredStorage () const
 Returns the storage object of the unfiltered node (const version). More...
 

Detailed Description

template<typename Node, typename Filter>
class Dune::TypeTree::FilteredCompositeNode< Node, Filter >

Base class for composite nodes representing a filtered view on an underlying composite node.

Member Function Documentation

◆ child() [1/2]

template<typename Node , typename Filter >
template<std::size_t k, typename std::enable_if< lazy_enable< k >::value, int >::type = 0>
auto& Dune::TypeTree::FilteredCompositeNode< Node, Filter >::child ( index_constant< k >  = {})
inline

Returns the k-th child.

Returns
a reference to the k-th child.

Referenced by Dune::TypeTree::FilteredCompositeNode< Node, Filter >::setChild().

◆ child() [2/2]

template<typename Node , typename Filter >
template<std::size_t k>
const auto& Dune::TypeTree::FilteredCompositeNode< Node, Filter >::child ( index_constant< k >  = {}) const
inline

Returns the k-th child (const version).

Returns
a const reference to the k-th child.

◆ childStorage() [1/2]

template<typename Node , typename Filter >
template<std::size_t k, typename std::enable_if< lazy_enable< k >::value, int >::type = 0>
auto Dune::TypeTree::FilteredCompositeNode< Node, Filter >::childStorage ( index_constant< k >  = {})
inline

Returns the storage of the k-th child.

Returns
a copy of the object storing the k-th child.

◆ childStorage() [2/2]

template<typename Node , typename Filter >
template<std::size_t k>
auto Dune::TypeTree::FilteredCompositeNode< Node, Filter >::childStorage ( index_constant< k >  = {}) const
inline

Returns the storage of the k-th child (const version).

Returns
a copy of the object storing the k-th child.

◆ unfiltered() [1/2]

template<typename Node , typename Filter >
template<bool enabled = !nodeIsConst>
std::enable_if<enabled,Node&>::type Dune::TypeTree::FilteredCompositeNode< Node, Filter >::unfiltered ( )
inlineprotected

Returns the unfiltered node.

Returns
A reference to the original, unfiltered node.

◆ unfiltered() [2/2]

template<typename Node , typename Filter >
const Node& Dune::TypeTree::FilteredCompositeNode< Node, Filter >::unfiltered ( ) const
inlineprotected

Returns the unfiltered node (const version).

Returns
A const reference to the original, unfiltered node.

◆ unfilteredStorage() [1/2]

template<typename Node , typename Filter >
template<bool enabled = !nodeIsConst>
std::enable_if<enabled,std::shared_ptr<Node> >::type Dune::TypeTree::FilteredCompositeNode< Node, Filter >::unfilteredStorage ( )
inlineprotected

Returns the storage object of the unfiltered node.

Returns
A shared_ptr to the original, unfiltered node.

◆ unfilteredStorage() [2/2]

template<typename Node , typename Filter >
std::shared_ptr<const Node> Dune::TypeTree::FilteredCompositeNode< Node, Filter >::unfilteredStorage ( ) const
inlineprotected

Returns the storage object of the unfiltered node (const version).

Returns
A shared_ptr to the original, unfiltered node.

The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 25, 22:37, 2024)