[1.x] 函数模板Function Template
| ```cpp
// eg : swap() template
template
<br />- `template`语句需要**单独成行**,其中`class`有时也写成`type`,`T`可以更换<br />- `template < class xxx >`影响的是它以下的那块部分<br />- 模板又叫**元代码**,检测到需求时,会将模板**实例化**一个部分来实现这个需求<br />- 需要注意,当使用模板时,必须要求每一个实例中`T`必须一样<br />```cpptemplate < class T >void funName(T x){T y;// ...}template < class T >void myFun(T x, T y){// ...}// myFun('c',1.0); 会报错,因为两个参数类型不一样,但模板要求两个参数类型一样
- 当参数中没有T但是函数内部会用到的时候,可用尖括号指明类型
```cpp
template < class T >
void fun( void ){
//…
}
// fun
|| --- |<a name="GV488"></a># [2.x] 类模板Class Template| ```cpp// eg : vector templatetemplate < class T >class Vector{public:Vector(int);~Vector();Vector(const Vector&);Vector &operator=(const Vector&);T &operator[](int);private:T *m_elements;int m_size;};




- 需要**注意**:template语句属于声明,需要放在.h中
|
| —- |
[3.x] 元函数Meta Function
[大一寒假] Stanford CS 106L - Standard C++ programming
[大一寒假] Stanford CS 106L - Standard C++ programming
