C++ template
Definition
C++ 提供的一种抽象机制:允许我们编写一段 通用
的逻辑,来处理 任意类型
的变量。
这是 继承机制
以外的另一种抽象机制,极大地提升了代码的可复用性。
注意:模板定义本身不参与编译,而是编译器根据模板的用户使用模板时提供的类型参数生成代码,再进行编译,这一过程被称为模板实例化。用户提供不同的类型参数,就会实例化出不同的代码。
Category
C++ template
可以分为 2 个类别:
function template
class template
Function Template
把处理不同类型的通用逻辑抽象成函数,就得到了函数模板。
函数模板可以声明为 inline
或者 constexpr
的,将它们放在 template
之后,返回值之前即可。
如果细分,函数模板可以分为 2 类:
- 普通函数模板
- 类成员函数模板
普通函数模板
类成员函数模板
可以单独的把类中的某个函数声明为函数模板。
Class Template
Related
模板特化 - 知乎
Reference
Template (C++) - Wikipedia
C++ Template 基础篇(一):函数模板_C/C++