TRIQS/nda 1.3.0
Multi-dimensional array library for C++
Loading...
Searching...
No Matches
nda::clef::evaluator< expr< Tag, Childs... >, Pairs... >

#include <nda/clef/eval.hpp>

Detailed Description

template<typename Tag, typename... Childs, typename... Pairs>
struct nda::clef::evaluator< expr< Tag, Childs... >, Pairs... >

Specialization of nda::clef::evaluator for nda::clef::expr types.

Template Parameters
TagTag of the expression.
ChildsTypes of the child nodes.
PairsTypes of the nda::clef::pair objects.

Definition at line 148 of file eval.hpp.

Public Member Functions

__inline__ decltype(auto) operator() (expr< Tag, Childs... > const &ex, Pairs &...pairs) const
 Evaluate the given expression by applying the given nda::clef::pair objects.
 

Static Public Attributes

static constexpr bool is_lazy = (evaluator<Childs, Pairs...>::is_lazy or ...)
 Constexpr variable that is true if any of the evaluators of the child nodes is lazy.
 

Member Function Documentation

◆ operator()()

template<typename Tag , typename... Childs, typename... Pairs>
__inline__ decltype(auto) nda::clef::evaluator< expr< Tag, Childs... >, Pairs... >::operator() ( expr< Tag, Childs... > const & ex,
Pairs &... pairs ) const
inlinenodiscard

Evaluate the given expression by applying the given nda::clef::pair objects.

Note
Depending on the given expression as well as the the given pairs, the result of the evaluation might be again a lazy expression.
Parameters
exExpression to be evaluated.
pairsnda::clef::pair objects to be applied to the expression.
Returns
The result of the evaluation (calls nda::clef::op_dispatch indirectly through a helper function).

Definition at line 170 of file eval.hpp.


The documentation for this struct was generated from the following file: