c – 模板参数必须是类型吗?

前端之家收集整理的这篇文章主要介绍了c – 模板参数必须是类型吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Bjarne Stroustrup C Book(第13章,第331页)中,它说“模板参数可用于后续模板参数的定义”.它提供了以下代码
template<class T,T def_val> class Cont{ /* ... */ }

任何人都可以提供如何使用此模板的示例.例如,如何初始化Cont的对象?在我看来,“def_val”不是类型参数,不应该放在<>中.我错了吗?

非常感谢

解决方法

你可以这样做:
Cont<int,6> cnt;
//        ^ as long as this is of type T (in this case int)
// def_val will be of type int and have a value of 6

模板参数不需要是类型.

这只适用于T是一个整数类型(int,unsigned,long,char等但不是float,std :: string,const char *等),正如@Riga在他/她的评论中提到的那样.

猜你在找的C&C++相关文章