您認爲哪種更好?模板標識符vs模板函數參數類型中的decltype
template <typename T> void func(T x,T y) {}
或
template <typename T> void func(T x,decltype(x) y) {}
IMHO,第二形式似乎優選的,因爲在類型x和y之間的聯繫是明確的,並且至少當重命名模板標識符的東西,看起來容易出錯較少。
編輯
第二種形式讓你打電話與一個使用第一個參數的子類型的功能,而第一種形式需要完全相同的類型。這個論點似乎比前一個稍好。
第二種形式也似乎不必要的混淆。 – DeiDei
我沒有真正得到'decltype'替代方案的用例。謹慎地闡述你爲什麼要這樣的事情? –
第二種形式不會爲'y'啓用隱式轉換,而第一種形式不會? – Quentin