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 x, int y, int z, int w) { m_val = m_op.eval(*(Ti *)m_lhs->calc(x, y, z, w), *(Ti *)m_rhs->calc(x, y, z, w)); return (void *)&m_val; }