рассмотрит следующий код:шаблон специализации для внутреннего класса
struct X
{
template <typename T>
class Y
{};
};
template<>
class X::Y<double>{
};
здесь мы специализирующиеся класс Y для типа двойными и код работает отлично. проблема заключается в том, что если я изменить код для этого:
template<typename A>
struct X
{
template <typename T>
class Y
{};
};
template<typename A>
class X<A>::Y<double>{
};
компилятор выдаст сообщение об ошибке:
'X::Y': explicit specialization is using partial specialization syntax, use template <> instead!
дозу любой знает, как я могу специализироваться класса Y в этом случае?
ли делать то, что сообщение об ошибке говорит, что не поможет? Используйте 'template <>' вместо 'template' по вложенной специализации шаблона. –
это не работает! Я тоже устал от этого: template <> класс X :: Y { }; –
MEMS