深入模板编程笔记一

第一章就简单介绍


     模板参数的自动推导:

       

template void fun(t1 a, t2 b, t4 c)

fun(1, 2, 3) //用typeid测试后,发现省却参数的自动推导是按照顺序的。也就是说double int int只确定了t1 t2 t3的类型,然后函数的传人参数却有一个t4类型,由于没有传人模板,编译器便通过传人参数c自动推导t4的模板(这里是int).fun(2,"char",anytype)

    模板默认值:

template


    模板函数、类体:


通过网上知道,模板的实现是随用随生成的。没有真实函数实现代码,所以定义和声明放入头文件中。讨厌的话可以用export改变。

//声明
template
T fun(T v)

//定义
tempalte int fun(int v)//作者表示编译器会自动寻找合适模板实现,但是测试没成功



为模板编写唯一名

    

//caller1.cpp
#include
tempalte
void fun(t v) {
   std::cout<<"func1"<
tempalte
void fun(t v) {
   std::cout<<"func2"<

你可能感兴趣的:(看书)