第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用'class'或'typename'作為模板參數(shù)?

使用'class'或'typename'作為模板參數(shù)?

C++
一只萌萌小番薯 2019-09-18 10:32:10
在C ++中定義函數(shù)模板或類模板時,可以這樣寫:template <class T> ...或者可以這樣寫:template <typename T> ...是否有充分理由偏好一個而不是另一個?我接受了最受歡迎(也很有趣)的答案,但真正的答案似乎是“不,沒有理由更喜歡一個而不是另一個。”它們是等價的(除非如下所述)。有些人有理由一直使用typename。有些人有理由一直使用class。有些人有理由同時使用這兩種方法。有些人并不關心他們使用哪一個。但請注意,在模板模板參數(shù)的情況下,在C ++ 17之前,需要使用class而不是typename。
查看完整描述

3 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

根據(jù)Scott Myers,Effective C ++(第3版)第42項(當然,這必須是最終答案) - 差異是“沒有”。

建議是使用“class”,如果預期T將永遠是一個類,如果可能需要其他類型(int,char *,則為“typename”)??紤]一下使用提示。


查看完整回答
反對 回復 2019-09-18
?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

作為除了所有上述職位,使用的class關鍵字是被迫(直至并包括C ++ 14),當處理模板的模板的參數(shù),例如:


template <template <typename, typename> class Container, typename Type>

class MyContainer: public Container<Type, std::allocator<Type>>

{ /*...*/ };

在這個例子中,typename Container會產生編譯器錯誤,如下所示:


error: expected 'class' before 'Container'


查看完整回答
反對 回復 2019-09-18
  • 3 回答
  • 0 關注
  • 715 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號