Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > шаблоны


Автор: MAKCim 14.1.2006, 10:48
Такой вопрос: с чем связана невозможность использования в шаблонном классе полной специализации другого шаблонного класса параметром первого
Код

template<class T> class A
{
private:
    template<class C> struct B;
    template<> struct B<T> {};                //compile-time ошибка
};

частичная специализация работает правильно для T
Код

template<class T> class A
{
private:
    template<class C, class U=C> struct B;
    template<class C> struct B<C,T> {};
};

Автор: MAKCim 14.1.2006, 13:06
кстати, компилятор gcc 4.02

Автор: Void 14.1.2006, 14:38
ИМХО, это невозможно:
Цитата
...declaration shall not explicitly specialize a class member template if its enclosing class
templates are not explicitly specialized as well.

Обходной трюк должен быть, но пока ничего придумать не могу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)