C++模板的类的展开
突然明白了C++模板的类的展开 也就是C++模板的递归
template
struct sum {
enum {
value = i + sum
};
};
// 对i = 1特化
template<>
struct sum<0> {
enum{
value = 1
};
};
int main() {
std::cout << sum<20>::value << std::endl;
return 0;
}
当实例化模板类的时候需要传递 模板参数 c++的语法使用classname 也就是 xxx不同就是不同的模板,也就是他实际的值不同就是不同的模板类 对应上面的类就是 sum<20> sum<19> sum<18> sum<17> sum<16> … sum<0> 直到最后一个结果0
C++模板的类的展开最先出现在Python成神之路。
版权声明:
作者:lichengxin
链接:https://www.techfm.club/p/16611.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论