Base class for any kind of operator with children (scalar or tensor). More...
#include <Operator.hpp>
Public Types | |
using | Traits = f::Traits< void > |
Public Member Functions | |
template<int N = 0> | |
constexpr auto & | child () |
Access children. More... | |
constexpr auto & | lhs () |
Get the first subexpression if this is a binary operation. More... | |
constexpr auto & | rhs () |
Get the second subexpression if this is a binary operation. More... | |
template<int N = 0> | |
constexpr const auto & | child () const |
constexpr const auto & | lhs () const |
constexpr const auto & | rhs () const |
template<typename F > | |
constexpr void | forEachChild (F &lambda) |
Run a lambda function on each child. More... | |
Static Public Attributes | |
static constexpr int | Arity = sizeof...(Children) |
Protected Member Functions | |
constexpr | Operator (Children... args) |
template<typename F , int... I> | |
constexpr void | forEachChild (F &lambda, sp::int_sequence< I... > &) |
Protected Attributes | |
std::tuple< Children... > | children |
Base class for any kind of operator with children (scalar or tensor).
|
constexpr |
Access children.
Get the N'th subexpression.
|
constexpr |
Run a lambda function on each child.
|
constexpr |
Get the first subexpression if this is a binary operation.
|
constexpr |
Get the second subexpression if this is a binary operation.