Вложенные шаблоны и инициализация статического члена - PullRequest
1 голос
/ 27 июня 2011

Я хочу создать внутренний шаблонный класс, который будет зависеть от внешнего класса.У меня проблемы с определением его статических членов:

template<typename T1, typename T2>
struct B { 
  template<typename T3> 
  struct C { 
      static T3 m_c;
  }; 
  static T1 * pT1;
};
template<typename T1, typename T2>
template<typename T3>
T3 B<T1,T2>::C<T3>::m_c;

template<typename T1, typename T2> 
T1 * B<T1,T2>::pT1 = &B<T1,T2>::C<T2>::m_c;

Я получаю: a.cc:35: error: ожидаемое первичное выражение до '>' токена a.cc:35: error: ':: m_c 'не был объявлен

Как мне его определить?Спасибо.

1 Ответ

0 голосов
/ 27 июня 2011

Я предполагаю, что вашему компилятору не удалось проанализировать знак < как начальную скобку объявления шаблона.Попробуйте явно сказать, что это шаблон, а не оператор меньше:

template<typename T3>
T3 B<T1,T2>::template C<T3>::m_c;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...