c – 此模板定义有什么问题?

前端之家收集整理的这篇文章主要介绍了c – 此模板定义有什么问题?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
template <int N>
class myarray {
    typedef int Bitmap;
public:
    static Bitmap data[N];
};

template <int N> myarray<N>::Bitmap myarray<N>::data[N];

error: expected constructor,destructor,or type conversion before
‘myarray’

解决方法

你需要在myarray< N> :: Bitmap之前输入typename,因为它是一个依赖类型:
template <int N>
class myarray {
    typedef int Bitmap;
public:
    static Bitmap data[N];
};

   template <int N>
   typename myarray<N>::Bitmap myarray<N>::data[N];
// ^^^^^^^^

猜你在找的C&C++相关文章