所以我們可以說我有很多的模板參數類,其中之一是派生類使用CRTP:如何避免模板參數樣板調用父類的構造時
template <typename Derived, typename A, typename B, typename C, typename D>
class BaseFoo {
public:
BaseFoo(A& a) {}
};
而且我想繼承它:
class DerivedFoo : public BaseFoo<DerivedFoo, Bc, Cc, Dc, Ec> {
public:
DerivedFoo(A& a) : BaseFoo<DerivedFoo, Bc, Cc, Dc, Ec>(a) {}
};
是否有任何技巧可以避免所有顯式模板參數提及?
如果我仍然需要聲明Derived
作爲模板參數,那也行。
你可以使用'typedef'嗎? –
你的意思是類中的typedef?我想是的,但那會寫兩次模板的長列表。 'typedef BaseFoo ParentClass;'你是指DerivedFoo裏面的?由於需要使用CRTP,我不知道如何在課堂外進行typedef。 –
alesegdia
不會回答,因爲我猜如果這是有效的,那麼有人會提到它,但是......爲什麼可變參數模板不是這裏的解決方案? –