14.4 类型等价
1. 指向相同类或函数的两个模板 id 相同的条件是:它们的模板名字相同;它们引用相同的模板;它们的类型模板实参的类型相同;它们的整型或枚举型的非类型模板实参有相同的值;他们的指针或引用类型的非类型模板实参指向相同的外部对象或函数;它们所在模板的模板实参指向相同的模板。【例:
template<class E, int size> class buffer { /* ... */ };
buffer<char,2*512> x;
buffer<char,1024> y;
将 x 和 y 声明为相同的类型。
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;
将 x2 和 x3 声明为相同的类型;其类型与 x1 和 x4 各不相同。】