rem: void operator()(char const*, char const*) const
add: void operator()(char const* str, char const* ) const
context:     void operator()(char const*, char const*) const    {        long rhs = eval.top();        eval.pop();        long lhs = eval.top();        eval.pop();        cout << "popped " << lhs << " and " << rhs << " from the stack. ";        cout << "pushing " << m_op(lhs, rhs) << " onto the stack.\n";        eval.push(m_op(lhs, rhs));    }