Д
ДокторТуамОсес2
«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами».
Есть ли разница в этих понятиях?
Если есть, то в чём?
И где (в каких конструкциях) можно использовать шаблон с параметром-шаблоном или шаблон шаблонов?
И какую выгоду получает программист от использования «шаблонов шаблонов»/«шаблонов с параметрами-шаблонами» по сравнению с прочими средствами C++?
Я пока только знаю единственное (из стандарта на C++ ISO/IEC 14882 Second edition 2003-10-15) про такое использование шаблона с параметром шаблоном:
__________________________________________________-
Есть ли разница в этих понятиях?
Если есть, то в чём?
И где (в каких конструкциях) можно использовать шаблон с параметром-шаблоном или шаблон шаблонов?
И какую выгоду получает программист от использования «шаблонов шаблонов»/«шаблонов с параметрами-шаблонами» по сравнению с прочими средствами 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;
}