Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Частичная специализация функции, шаблонного класса, Как объявить? 
:(
    Опции темы
volatile
Дата 7.2.2011, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Вопрос в комментариях -->
Код

// Шаблон класса
template <typename T1, typename T2>
class xxx
{
   void func();
};

// Шаблон функции, для общего случая
template <typename T1, typename T2>
void xxx<typename T1, typename T2>::func()
{
   ;
}

// Частичная специализация этой-же функции, где T2 это int
// ВОТ ЗДЕСЬ НЕ ЗНАЮ КАК -->
template <typename T1, typename T2>    // Так не работает!
void xxx<typename T1, int>::func()     // Так не работает!
{             
   ;
}
// error C3860: template argument list following class template name must
// list parameters in the order used in template parameter list


PM MAIL   Вверх
Earnest
Дата 7.2.2011, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Насколько помню, класс можно специализировать только полностью (в смысле весь).
Вроде бы так:
Код

template <typename T1>
class xxx <T1, int>
{
   void func() {... } 
}; 




--------------------
...
PM   Вверх
azesmcar
Дата 7.2.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Цитата(Earnest @  7.2.2011,  14:31 Найти цитируемый пост)
Насколько помню, класс можно специализировать только полностью (в смысле весь).

Так и есть, member функции нельзя специализировать частично. Можно специализировать весь класс целиком, но не отдельно взятую функцию.
PM   Вверх
volatile
Дата 7.2.2011, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 37
Всего: 85



Earnestazesmcar, ясно.

Большое спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.