模板读书笔记

来源:互联网 发布:java compare 返回值 编辑:程序博客网 时间:2024/06/04 20:05
1. 由 member function template 产生的函数不会覆盖虚拟(virtual)函数。
2. 由 constructor template 产生的构造函数不会被当做 default copy 构造函数。(同样道理,由
assignment template 产生的 assignment 运算符不会被当做一个 copy-assignment 运算

符。这个问题较少 出现,因为 assignment 运算符不像 copy 构造函数那样会被隐式调用。)


//不使数组退化为指针的声明方法:

 template<typename E, int N>
 void f2(E(&)[N])
 {
std::cout << N << std::endl;
 }


template<typename T, typename U = typename Types<T>::I>
class S;

//这种情况下,S<void>仍属于上面S的定义,其默认项仍同S一致
template<>
class S<void>
{
public:
void f();
};


S<void, int> 调用特化版本

S<void, char>调用primary模板

0 0
原创粉丝点击