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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> «Шаблоны шаблонов» vs «шаблоны с параметрами-шабло, Есть ли разница в этих понятиях? 
:(
    Опции темы
ДокторТуамОсес
Дата 8.10.2010, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 8.6.2009

Репутация: -4
Всего: -12



«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами».
Есть ли разница в этих понятиях?

Если есть, то в чём?

И где (в каких конструкциях) можно использовать шаблон с параметром-шаблоном или шаблон шаблонов?
И какую выгоду получает программист от использования «шаблонов шаблонов»/«шаблонов с параметрами-шаблонами» по сравнению с прочими средствами C++?

Я пока только знаю единственное (из стандарта на C++ ISO/IEC 14882 Second edition 2003-10-15) про такое использование шаблона с параметром шаблоном:



Код

#include <iostream>
using std::cout ;
using std::cin ;
using std::endl ;

template < class T > class A {
    public :
    short x ;
} ;

// Специализация шаблона A
template < class T > class A < T* > {
    public :
    long x ;
} ;

// Шаблон класса с параметром-шаблоном, имеющим вариант
// со специализацией.
template < template    < class U > class V > class C {
    public :
    V < int  >    y ;
    V < int* >    z ;
} ;

C < A > c ;

int main (void) {
    cout << sizeof ( c.y.x ) << endl ; // 2
    cout << sizeof ( c.z.x ) << endl ; // 4
    char c ;
    cin >> c ;
    return 0 ;
}

__________________________________________________-

--------------------
"Извините! А это ничего, что я говорю в тот момент, когда Вы меня перебиваете?"™ 
PM MAIL   Вверх
mes
Дата 8.10.2010, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(ДокторТуамОсес @  8.10.2010,  19:12 Найти цитируемый пост)
«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами».
Есть ли разница в этих понятиях?


имхо первое, все таки это вопрос для форума филологов.. 

имхо второе, в первом случае обозначает сущность, которая является прообразом для других сущностей 
во втором сущность которая строится на основе других сущностей..

имхо третье, тема провокационная..

Добавлено через 2 минуты и 39 секунд
только заметил -9 , думаю мое опасение не напрасно smile



--------------------
PM MAIL WWW   Вверх
ДокторТуамОсес
Дата 8.10.2010, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 8.6.2009

Репутация: -4
Всего: -12



Цитата(mes @  8.10.2010,  21:14 Найти цитируемый пост)
имхо первое, все таки это вопрос для форума филологов.. 

Навеяло ЭТОЙ ссылкой и стандартом C++

Добавлено через 3 минуты и 5 секунд
Цитата(mes @  8.10.2010,  21:14 Найти цитируемый пост)
имхо второе, в первом случае обозначает сущность, которая является прообразом для других сущностей 
во втором сущность которая строится на основе других сущностей..

А не могли бы Вы то же самое сказать по русски?
А то я, пардон, отдельные слова понимаю, а общий смысл сказанного Вами, пардон, ускользает.
--------------------
"Извините! А это ничего, что я говорю в тот момент, когда Вы меня перебиваете?"™ 
PM MAIL   Вверх
ДокторТуамОсес
Дата 17.12.2010, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 8.6.2009

Репутация: -4
Всего: -12



Цитата(mes @  8.10.2010,  21:14 Найти цитируемый пост)
имхо первое, все таки это вопрос для форума филологов.. 


Приведу пример:

Код

template <class T> class X { /*  ...  */} ;
template <class Y, class Z, template <class T> class W = X> class P
{
    W<Y> var1 ;
    W<Z> var2 ;
    ...
}


Чем является конструкция template <class T> class W ?
Назвать шаблоном её нельзя, поскольку это не конкретный шаблон,
а описание формата шаблона, который должен быть передан в качестве параметра.
Т.е. фактически шаблон шаблонов
--------------------
"Извините! А это ничего, что я говорю в тот момент, когда Вы меня перебиваете?"™ 
PM MAIL   Вверх
mes
Дата 17.12.2010, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(ДокторТуамОсес @  17.12.2010,  01:22 Найти цитируемый пост)
Т.е. фактически шаблон шаблонов 

если с точки зрения самого шаблона:   шаблонный аргумент шаблона.. 
а то что будет передаваться туда будет : шаблонный параметр шаблона...


Это сообщение отредактировал(а) mes - 17.12.2010, 09:45


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 17.12.2010, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



Цитата(mes @  17.12.2010,  09:45 Найти цитируемый пост)
шаблонный аргумент шаблона.. 

Цитата(mes @  17.12.2010,  09:45 Найти цитируемый пост)
шаблонный параметр шаблона...

никогда их не различал не видя кода. ассоциации непонятные в моцгу smile 
PM WWW   Вверх
mes
Дата 17.12.2010, 10:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(boostcoder @  17.12.2010,  08:53 Найти цитируемый пост)
никогда их не различал не видя кода.

параметр это то что передается, а аргумент,то что получает функция.. 
они могу различаться как типом, так и значением ввиду возможных преобразований..
(это я не про шаблонный, а в общем)


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 17.12.2010, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



постараюсь запомнить... но сомневаюсь что получится. пробовал раньше smile 
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0879 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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