如果我有一個模板類:在C++模板類中,我可以使用相同的名稱來鍵入模板參數嗎?
template<typename Layout>
class LayoutHandler : Handler {
};
,我想參數佈局暴露給類的用戶。 然後:
template<typename Layout>
class LayoutHandler : Handler {
public:
typedef Layout Layout; // using the same name
};
VS2012可以編譯這段代碼,並給出了預期的結果。 (我使用std :: is_same來檢查它。) 這是允許在標準C++ 03或C++ 11中嗎?
我猜它是允許的,但不鼓勵,雖然(只是感覺並不好)。我更喜歡s.th.像'typedef Layout LayoutType';只是爲了便於閱讀。 –
個人而言,我更喜歡只用一個名字來完成一件事。在構造函數中,我還寫了類似T :: T(int a)的東西:a(a){} – jingyu9575
「typedef」具有相同名稱的目的是什麼?我不太明白。 –