logo
volkov / C++ / Бьерн Страуструп-Справочное руководство по С++

R.14.3 Эквивалентность типов

Две конструкции шаблонное-имя-класса обозначают один и тот же класс,

если в них совпадают имена шаблонов типа и значения указанных

параметров. Например, в следующих описаниях x и y одного типа,

который отличен от типа z:

template<class E, int size> class buffer;

buffer<char, 2*512> x;

buffer<char,1024> y;

buffer<char,512> z;

Ниже приведены описания, в которых одинаковый тип имеют x2 и x3.

Он отличается от типов x1 и x4:

template<class T, void(*err_fct)()>

class list { /* ... */ };

list<int,&error_handler1> x1;

list<int,&error_handler2> x2;

list<int,&error_handler2> x3;

list<char,&error_handler2> x4;