背景

为什么要研究C++模版呢?因为它有趣,也因为他是C++中的黑魔法。如果你也一样对模版感兴趣,那么希望你能一直坚持下去,并不断探索和交流

C++template定义

C++模版可类比为C语言中的宏,本质上都是代码替换,而C++中,template则是代码生成器

C++中template的定义如下:
由template关键字开始,后跟<模版参数>, 模版参数由多个typename列表组成。

譬如定义一个模版函数func, 其实现两个数相加,则如下

template <typename T>
auto func(T val1, T val2) {
    return val1 + val2;
}