Как мне написать эту спецификацию шаблона, когда я вне определения «класса» - PullRequest
0 голосов
/ 03 декабря 2010

Это то, с чем я никогда не сталкивался раньше.Скажем, у меня есть класс, который выглядит следующим образом:

template <class T1>
class A
{
   void normal_function();

   template <class T2>
   void templated_function(T2);
}

Из-за стандартов кодирования мне не разрешено помещать тело templated_function в определениях классов, я должен иметь его ниже (но все еще в файле .h).

Итак, у меня есть что-то вроде этого

template <class T1>
void A<T1>::normal_function()
{
  ...
}

Но как мне написать спецификацию шаблона для templated_function, когда она находится вне определения класса?Я попробовал это, но мне это показалось неправильным, и я не удивился, когда он не скомпилировался.

template <class T1, class T2>
void A<T1>::templated_function<T2>(T2 t)
{
  ...
}

1 Ответ

4 голосов
/ 03 декабря 2010

Это работает с g ++:

template<class T1> template<class T2>
void A<T1>::templated_function(T2 t)
{
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...