Проблема в том, что pop_front
не возвращает значение. Если вы хотите удалить первый элемент и прочитать его значение, вы можете сделать это в два этапа:
Token t = tokenList.front();
tokenList.pop_front();
Это соглашение используется во всех STL, в основном из соображений эффективности. Если front
вернуть значение и pop_front
ничего не вернуть, вы можете захватить значение, если хотите, но если вы просто хотите удалить значение, вы можете сделать это без создания ненужной копии удаленного объекта, просто вызвав pop_front
.
Позже вы столкнетесь с подобной ошибкой с этим кодом:
output.push_back(opStack.pop());
Чтобы это исправить, разбейте это на две строки:
output.push_back(opStack.top());
opStack.pop();
Надеюсь, это поможет!