1.函数参数与模板参数
上面的array是我们自己命名空间下的array,并不是库中的array,说到这里了,就介绍一下库中的array吧:
1.1 模板的按需实例化
这也就是上面所说的我们自己命名空间下的array!
因为模板本质上是一个半成品,其在编译时传参,不像函数参数一样运行时传参。所以就会导致可能有错误也检查不出来,具体如下:
1.2 模板的特化
模板特化中分为函数模板特化与类模板特化。
1.2.1 函数模板特化
1.2.2 类模板特化
1.3 模板分离编译
这个部分就是前面为什么写STL(vector、list等)的时候,只写在一个.h文件中
模板不支持定义和声明分离在两个文件!
所以也就是说,知识具有滞后性。学到后面才知道前面为啥要那么做。
前面还不知道这个的时候,写STL的底层可把我折磨坏了!
也许这个例子不是那么直观,那么来看一个更加简单直观的: