У меня есть такой код:Сокращение дублирования кода и замена #define с шаблонами
#define defaultOnTimer(N, X) \
if (Timers.N) Timers.N --; \
if (!Timers.N) S.X = D.X; \
defaultOnTimer(t1, sig1);
defaultOnTimer(t2, sig2);
defaultOnTimer(t3, sig3);
defaultOnTimer(t4, sig4);
Хотя это работает, мне интересно, если можно было бы использовать ++ шаблон C за ту же работу. «defaultOnTimer» может быть расширен в будущем для дополнительной работы, поэтому я не хочу просто дублировать его столько раз, сколько необходимо, а затем искать и изменять каждый из них.
Или это просто слишком сложная работа, и я должен просто придерживаться #define?
Обратите внимание, что S.X может быть любого типа.
Нет шаблоны не могут сделать именно это. Они могут сделать что-то подобное, если вы хотите немного изменить интерфейс (и S - тот же тип, что и D). –