簡體   English   中英

“typename =”在模板參數中的含義是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM