Possible Duplicate:
Where and why do I have to put the 「template」 and 「typename」 keywords?爲指針產生遞歸模板
我想創建的模板,這需要T類型和參數N作爲參數和「給出」第N級的爲T(例如一個指針。如果T是int
和N被2
它應該給int**
)
到目前爲止我的代碼是:
template<class T,int N>
struct ptr
{
typedef ptr<T*,N-1>::t t;
};
template<class T>
struct ptr<T,0>
{
typedef T t;
};
int main()
{
ptr<int,3>::t a; //a should be int***
}
但它給我這個編譯器錯誤:
source.cpp:6:11: error: need 'typename' before 'ptr<T*, (N - 1)>::t' because 'ptr<T*, (N - 1)>' is a dependent scope
這是什麼意思,它如何解決(如果它可能在C++中)?