c++ 中的模板,typename 和 class
以下两种方式在 c++ 中编写模板有什么区别
template
& template
以及我们什么时候更喜欢它们? 如果两者相同,那么如果一个就足够了,为什么我们要同时拥有它们呢?
What is the difference between writing a template in c++ in the below both ways
template<typename T>
& template<class T>
and when do we prefer them above each other?
If both are same,then why do we have them both if one is enough?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
完全没有区别。我(大部分)更喜欢第一个,但这是我个人的品味。语言对他们来说没有任何区别。
对于模板参数,关键字
typename
和class
是等效的。 §14.1.2 说:Stan Lippman 在他的文章中解释了这一点:
为什么 C++ 支持这两个类和类型参数的类型名称?
No difference at all. I prefer first one (mostly), but that is my personal taste. The language doesn't make any difference between them.
For template parameters, the keywords
typename
andclass
are equivalent. §14.1.2 says:Stan Lippman explains this in his article:
Why C++ Supports both Class and Typename for Type Parameters?
这些关键词的存在是有历史原因的。他们之间没有区别。读这个:
http://blogs.msdn.com/b/slippman /archive/2004/08/11/212768.aspx
These keywords are there because of historical reason. There's no difference between them. Read this:
http://blogs.msdn.com/b/slippman/archive/2004/08/11/212768.aspx