20 build(operands,
T, cloneOperands);
37 for (
int i = 0; i <
T; i++) {
38 if (m_operands[i] !=
nullptr) {
51 return numberOfOperands ==
T;
56 assert(operands !=
nullptr);
58 for (
int i=0; i < numberOfOperands; i++) {
59 assert(operands[i] !=
nullptr);
61 m_operands[i] = operands[i]->
clone();
63 m_operands[i] = operands[i];
65 const_cast<Expression *
>(m_operands[i])->setParent(
this);
71 for (
int i = 0; i < this->numberOfOperands(); i++) {
76 if (SimplificationOrder(this->operand(i), e->
operand(i), canBeInterrupted) != 0) {
77 return SimplificationOrder(this->operand(i), e->
operand(i), canBeInterrupted);
virtual Expression * clone() const =0
Expression ** operands() const
virtual int numberOfOperands() const =0
int numberOfOperands() const
const Expression * operand(int i) const