我想创建一个模板,它接受一个类型 T 和一个参数 N 作为参数,并“给”一个 T 的第 N 级指针(例如,如果 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++ 中可能的话)?