я написал Reverse Polish Notation оценщика, который поддерживает множество funcions, таким образом, у меня есть switch
с многими случаями как этот:Как создать макрос для создания этого кода?
case 'b': {
if (stack.size() < 1) fail();
pop(l1, stack);
l1 = log(l1);
push(l1, stack);
break;
}
Для всех функций, которые требуют один аргумента шаблона является то же самым, единственным изменением является символом case
и l1 = ...;
. Как создать макрос, который генерирует этот case
.
Почему бы не написать функцию вместо макроса? – jaggedSpire
Можете ли вы продемонстрировать * любое * усилие при решении этого самостоятельно? –
Альтернатива: [Посмотрите на использование 'std :: map'] (http://en.cppreference.com/w/cpp/container/map) для отображения между символом' char' и функцией. Тогда вы можете 'operator [opcode]();' Нет необходимости в переключении. – user4581301