非类型的类模板参数:
template <typename T, int MAXSIZE> //基于值的模板
class Stack {
...
};
非类型的函数模板参数:
std::transform(source.begin(), source.end(), dest.begin(), (int(*)(int const&)) addValue<int, 5>);
解释:
addValue<int, 5>是一个函数模板实例,而函数模板实例通常被看成是用来命名一组重载函数的集合。然而,根据现今的标准,重载函数的集合并不能用于模板参数的演绎,所以必须将这个函数模板的实参强制类型转换为具体的类型。
非类型的模板参数限制:
通常,非类型模板参数是常整数(包括枚举)或指向外部链接对象的指针(用extren声明的);不允许为浮点数、类对象和全局指针(指向内部链接对象的指针)
C++ Templates:非类型模板参数
最新推荐文章于 2024-12-16 20:51:36 发布