3
更换的#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的类型相同)。 –