Делал в 4 лабе по аналогии с лабой Кирилла
    try {
        expression.arg1 = static_cast<int>(parseInteger(argv[1]));
        expression.arg2 = static_cast<int>(parseInteger(argv[2]));
    }
Только у меня не надо присваивать static_cast<int>(parseInteger(argv[1])) никуда.
gcc ругался в прошлой лабе, вот таким образом я выкрутился с помощью этой функции canCompute().
Как по другому сделать не знаю.