是什麼在兩種方式模板在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