Как инициализировать статическое поле в шаблонном классе с типом внутреннего класса

У меня есть что-то вроде этого

template <class T>
class Outer {
public: class Inner;

static Inner* x;

//...

class Inner {
//...
};
};

// Not working
template <class T>
Outer<T>::Inner* Outer<T>::x = NULL;

Ошибка, которую я получаю, говорит: :16: error: expected constructor, destructor, or type conversion before ‘*’ token

0

Решение

template<class T>
class Outer {
public:

class Inner;

static Inner* x;

//...

class Inner {
//...
};
};

template<class T>
typename Outer<T>::Inner *Outer<T>::x = NULL;
  1. Что касается typename а также class, пожалуйста, обратитесь к Различия в ключевых словах «typename» и «class» в шаблонах C ++

  2. Почему это, пожалуйста, обратитесь к Беда с зависимыми типами в шаблонах

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]