template <int N>
class myarray {
typedef int Bitmap;
public:
static Bitmap data[N];
};
template <int N> myarray<N>::Bitmap myarray<N>::data[N];
Run Code Online (Sandbox Code Playgroud)
错误:'myarray'之前的预期构造函数,析构函数或类型转换
您需要typename之前myarray<N>::Bitmap因为它是一个依赖类型:
template <int N>
class myarray {
typedef int Bitmap;
public:
static Bitmap data[N];
};
template <int N>
typename myarray<N>::Bitmap myarray<N>::data[N];
// ^^^^^^^^
Run Code Online (Sandbox Code Playgroud)