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的類型相同)。 –