template<typename Tag, typename... Ts>
struct nda::clef::expr< Tag, Ts >
Single node of the expression tree.
An expression node contains a tag that determines the type of expression and a tuple of child nodes which are usually either other expression nodes, nda::clef::placeholder objects or specific values/objects like an int or a double.
- Template Parameters
-
| Tag | Tag of the expression. |
| Ts | Types of the child nodes. |
Definition at line 65 of file expression.hpp.
|
| | expr (expr &&ex) noexcept |
| | Move constructor simply moves the child nodes from the source expression.
|
|
| expr (expr const &)=default |
| | Default copy constructor.
|
| template<typename... Us> |
| | expr (Tag, Us &&...us) |
| | Construct an expression node with a given tag and child nodes.
|
| template<typename... Args> |
| auto | operator() (Args &&...args) const & |
| | Function call operator.
|
|
expr & | operator= (expr &&)=default |
| | Default move assignment operator.
|
|
expr & | operator= (expr const &)=delete |
| | Copy assignment operator is deleted.
|
| template<typename... Args> |
| auto | operator[] (Args &&...args) const & |
| | Subscript operator.
|