Что не так в этом определении шаблона? - PullRequest
6 голосов
/ 20 декабря 2011
template <int N>
class myarray {
    typedef int Bitmap;
public:
    static Bitmap data[N];
};

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

ошибка: ожидаемый конструктор, деструктор или преобразование типов до 'myarray'

1 Ответ

9 голосов
/ 20 декабря 2011

Вам нужно 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];
// ^^^^^^^^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...