是什么在两种方式模板在C++中,类型名称和
template<typename T>
& template<class T>
下面写C模板之间++的区别,当我们喜欢他们在彼此之上? 如果两者都是相同的,那么为什么我们有他们两个,如果足够了?
是什么在两种方式模板在C++中,类型名称和
template<typename T>
& template<class T>
下面写C模板之间++的区别,当我们喜欢他们在彼此之上? 如果两者都是相同的,那么为什么我们有他们两个,如果足够了?
没有任何区别。我更喜欢第一个(大部分),但这是我个人的品味。这种语言在它们之间没有任何区别。
对于模板参数,关键字typename
和class
是等效的。 §14.1.2说:
有一个 模板参数类和类型名之间没有语义差别 。
如果两者相同,那么为什么我们有他们两个,如果一个就够了?
斯坦李普曼解释了这个在他的文章:
Why C++ Supports both Class and Typename for Type Parameters?
更多信息可以在[在这篇博客中找到](http:// blogs。 msdn.com/b/slippman/archive/2004/08/11/212768.aspx)。 – orlp 2011-04-25 09:54:05
此链接可能很有用http://pages.cs.wisc.edu/~driscoll/typename.html – 2011-04-25 09:57:45
这些关键字那里,因为历史的原因。他们之间没有区别。阅读原因: http://blogs.msdn.com/b/slippman/archive/2004/08/11/212768.aspx
我更喜欢'typename',因为我的模板接受非类类型(但是,它们完全相同)当然, – Cubbi 2011-04-25 10:28:43
模板中的C++关键字'typename'和'class'不同](http://stackoverflow.com/questions/2023977/c-difference-of-keywords-typename-and-class-in-templates) – Matt 2011-11-14 11:22:02