13
我已經看到了這本書「有效的現代C++」的189頁這樣表達:模板參數中的「typename =」是什麼意思?
template<typename T,
typename = typename std::enable_if<condition>::type>
explicit Person(T&& n);
我只是想知道什麼是部分「typename =
」的意思。它看起來像一個模板參數的默認參數。但是你不需要在默認參數中使用「typename some_name = ...
」之類的東西嗎?沒有第二個模板參數的名稱,我沒有看到在這種情況下使用的第二個模板參數。
P.S.當我在谷歌(或其他搜索引擎)的答案搜索,等號總是被丟棄,而這只是讓中找到答案几乎是不可能的......
非常感謝。我只是不知道可以有未命名的模板參數。現在一切都很有意義。 – qft 2015-03-19 03:38:42
爲了澄清這句話:'它會創建一個編譯錯誤,如果條件不met':它是公平地說,這將觸發SFINAE(「替換失敗不是一種錯誤」)和構造方法中沒有定義? (我對SFINAE有點新鮮。) – kevinarpe 2016-10-03 09:03:29