Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: специализация шаблонов...  (Прочитано 18020 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mfcer__
Команда клуба

ru
Offline Offline

« : 26-01-2004 22:53 » 

правильно ли я понял:

template <typename T>
class ClassFoo
{
 // abra - kadabra
};

template <>
class ClassFoo<int> // допустим int
{
 // trah - ti - bi - doh
}

При вызове
ClassFoo<int> foo;
будет выбран второй случай???

И еще объясните вот такое

template <typename T, ...>
class A
{
 // class A
};
Записан
Xeysan
Гость
« Ответ #1 : 27-01-2004 00:29 » 

Цитата
правильно ли я понял:

да
Код:
И еще объясните вот такое 

template <typename T, ...>
class A
|
// class A
";

незнаю...шаблон с переменным числом параметров Отлично. Сам подумай, как можно этим воспользоваться?...конечно это неправильно, откуда это?
Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #2 : 15-02-2004 20:46 » 

Без проблем - нашел, только слегка это выглядит по другому
(пример из книги "Шаблоны С++")
По умному это называется параметры списки.
template <typename T> inline
T const& max(T const& a, T const& b)
{
 return a<b?b:a;
}
template <typename T, ... list> inline
T const& max(T const& a, T const& b,list const& x)
{
 return max(a,max(b,x));
}
Записан
ysv_
Помогающий

ua
Offline Offline

« Ответ #3 : 15-02-2004 22:02 » 

В MinGW 3.2.3 это не работает.
template <typename T> inline
T const& max(T const& a, T const& b)
{
return a<b?b:a;
}

template <typename T, ... list> inline
T const& max(T const& a, T const& b,list const& x)
{
return max(a,max(b,x));
}

int main()
{
  int c=max(1, 2, 3, 4);
  return c;
}

Выдает ошибку:
a.cpp:7: parse error before `...' token
a.cpp:14: cannot declare `::main' to be a template
a.cpp:14: confused by earlier errors, bailing out
Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #4 : 15-02-2004 22:29 » 

Кажется я ошибся этот пример - что то вроде псевдно кода наверно, поищу подробнее. Причем на VC++ 7.1 тоже не пашет.
Записан
Serega
Гость
« Ответ #5 : 16-02-2004 10:59 » 

Если нужны списки типов в качестве параметров шаблона, то советую почитать Александреску "Современное проектирование на С++" (Modern C++ Design)
Записан
Xeysan
Гость
« Ответ #6 : 16-02-2004 19:08 » 

И это явно не элипсис...
Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #7 : 16-02-2004 19:17 » 

Цитата

Если нужны списки типов в качестве параметров шаблона, то советую почитать Александреску "Современное проектирование на С++" (Modern C++ Design)

И где в Питере эту чудо книгу можно купить (я тоже из Спб).  Я шокирован!
Или в нете где скачать можно...
Спасибо заранее...  Улыбаюсь
Записан
Mfcer__
Команда клуба

ru
Offline Offline

« Ответ #8 : 16-02-2004 19:19 » new

Цитата

И это явно не элипсис...

 :?:  Что такое элипсис... ?
А код я брал из этой книги - http://www.rsdn.ru/res/book/cpp/Template.xml
Записан
Sashok
Молодой специалист

us
Offline Offline
Пол: Мужской

« Ответ #9 : 17-02-2004 03:18 » 

Цитата: Mfcer__
Цитата

И это явно не элипсис...

 :?:  Что такое элипсис... ?
А код я брал из этой книги - http://www.rsdn.ru/res/book/cpp/Template.xml
Элипсис - это ...  Ага  
Не в смысле что-то неприличное, а именно так, как написано - многоточие.
Записан

Если бы окружающие нас объекты содержали столько же ошибок, сколько программы, цивилизация обрушилась бы от первого порыва ветра...
Serega
Гость
« Ответ #10 : 17-02-2004 09:47 » 

Цитата: Mfcer__
И где в Питере эту чудо книгу можно купить (я тоже из Спб).  Я шокирован!
Или в нете где скачать можно...
Спасибо заранее...  Улыбаюсь

Я покупал на элизаровской, наверняка есть в доме книги или в технической книге
Она из серии "C++ In-Depth", красные книжки в глянцевой обложке
Записан
Serega
Гость
« Ответ #11 : 17-02-2004 09:53 » 

Скачать можно здесь http://informika.by.ru/files/books_prog.shtml
Гром, добавь в библиотеку !!!
Записан
faceless
Гость
« Ответ #12 : 14-04-2004 16:39 » 

Видимо шаблоны типа <... list> появились в стандарте не так давно. Хотя, быстрей бы реализовывали, штука интересная.

Вот я такую штуку откопал http://www.osl.iu.edu/~jajarvi/publications/papers/vararg_templates_n1483.pdf

А как можно заменить такую конструкцию. Не писать же по шаблону на каждый вариант (по длине).
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines