背景
除了日常用的typename以外,模板还有很多非类型模板参数文章来源:https://www.toymoban.com/news/detail-606491.html
具体
- int 或者 enums
- 对象指针和函数指针(好像很多编译器都支持void*)
- 左值引用(用的不多)
- 模板模板类型
模板模板类型
其他都比较常见且容易理解,重点看看这个:文章来源地址https://www.toymoban.com/news/detail-606491.html
template < typename ELE, template<typename A, typename B> typename Base>
class Student
{
Base<int, float> tmp;
Base<ELE, int>
}
- Base前面的typename在C++11之前必须是class,C++11以后才允许用typename
- 这个Student的第二个模板参数必须传入一个双参数的模板类型
- 这样写的作用就是仅仅为了省一点代码,比如以前可以如下使用,其他好处目前还没用到,大佬看到可以帮忙补一下。
//before
Student<int, Base<int, float>>
//now
Studeng<int, Base>
到了这里,关于非类型模板参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!