У меня есть шаблонный класс, который имеет функцию-член шаблона, которая должна быть специализированной, как в:
template <typename T>
class X
{
public:
template <typename U>
void Y() {}
template <>
void Y<int>() {}
};
Хотя VC обрабатывает это правильно, к сожалению, это не стандартно, и GCC жалуется: explicit specialization in non-namespace scope 'class X<T>'
Я пытался:
template <typename T>
class X
{
public:
template <typename U>
void Y() {}
};
template <typename T>
// Also tried `template<>` here
void X<T>::Y<int>() {}
Но это заставляет и VC, и GCC жаловаться.
Какой правильный способ сделать это?