«Шаблоны шаблонов» Vs «шаблоны с параметрами-шаблонами».

Тема в разделе "Общие вопросы по С и С++", создана пользователем ДокторТуамОсес2, 8 окт 2010.

  1. ДокторТуамОсес2

    ДокторТуамОсес2 Well-Known Member

    Регистрация:
    9 июн 2009
    Сообщения:
    99
    Симпатии:
    0
    «Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами».
    Есть ли разница в этих понятиях?

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

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

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



    Код (C++):
    #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;
    }
    __________________________________________________-
     
  2. ДокторТуамОсес2

    ДокторТуамОсес2 Well-Known Member

    Регистрация:
    9 июн 2009
    Сообщения:
    99
    Симпатии:
    0
  3. ДокторТуамОсес2

    ДокторТуамОсес2 Well-Known Member

    Регистрация:
    9 июн 2009
    Сообщения:
    99
    Симпатии:
    0
    ВОТ ещё ссылка по теме "шаблоны шаблонов"
     
  4. Sekt

    Sekt Гость

    Подробную информацию можете найти в книге справочник разработчика "Шаблоны".
    От себя могу сказать что указаные вами веши применяются для определенной задачи специализации например парсинг.
     

Поделиться этой страницей