我剛剛開始學習模板,我正在通過一個示例,其中實現了TypeList,並看到了TypeList的Length方法的實現。C++模板特化和模板參數數
template <class TList> struct Length;
template <> struct Length<NullType>
{
enum { value = 0 };
};
template <class T, class U>
struct Length< Typelist<T, U> >
{
enum { value = 1 + Length<U>::value };
};
我的問題是,主長度模板只有1個參數(TList),但專業化有2個參數。這怎麼可能,我在其他地方看過專業化的參數數量較少
專業化有兩個參數,但只定義一種類型。 – Jarod42
專業化本身是一個具有兩個參數的模板,但它仍然只給出一種類型('Typelist')用於專業化。 –
cdhowie