void *calc(int x, int y, int z, int w) { if (calcCurrent(x, y, z, w)) { m_val = m_op.eval(*(Ti *)m_child->calc(x, y, z, w)); } return (void *)(&m_val); }
void *calc(int idx) { if (calcCurrent(idx)) { m_val = m_op.eval(*(Ti *)m_child->calc(idx)); } return (void *)&m_val; }
void calc(int idx, int lim) final { m_op.eval(TNode<To>::m_val, m_child->m_val, lim); }