[英]What does “typename =” mean in the template parameters?
我在“Effective Modern C ++”一書的第189頁中看到過這個表達式:
template<typename T,
typename = typename std::enable_if<condition>::type>
explicit Person(T&& n);
我只是想知道“ typename =
”這個部分是什么意思。 它當然看起來像模板參數的默認參數。 但是你不需要在默認參數中使用類似“ typename some_name = ...
”的東西嗎? 第二個模板參數沒有名稱,我沒有看到在這種情況下使用的第二個模板參數。
PS當我在谷歌(或任何其他搜索引擎)上搜索答案時,等號總是被丟棄,這只是讓找到答案幾乎不可能......
這是一個可選的模板參數,沒有名稱和默認值。
它用於應用enable_if
條件; 如果不滿足條件,它將創建編譯器錯誤。
您可以對普通方法參數使用完全相同的語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.