55 virtual void print(std::ostream& str,
int precedence = 99)
const;
72 :
Scalar<
T>(rhs), lft(rhs.lft->clone()), rgt(rhs.rgt->clone()) {}
76 : lft(left), rgt(right) {}
88 std::vector<T> op1 = lft->evaluate();
89 int op2 = int(std::round(rgt->evaluate()));
91 if (op2 <= 0 ||
static_cast<unsigned>(op2) > op1.size()) {
92 throw CLRangeError(
"Expressions::Indexer()",
"Index out of range.");
A scalar expression to retrieve an indexed component from an array.
virtual Scalar< T > * clone() const
Make clone.
virtual void print(std::ostream &str, int precedence=99) const
Print expression.
void operator=(const Indexer &)
virtual T evaluate() const
Evaluate.
PtrToScalar< double > rgt
Indexer(const Indexer< T > &)
A pointer to an array expression.
A pointer to a scalar expression.
Representation objects and parsers for attribute expressions.