簡體   English   中英

模板參數推導如何遞歸工作?

[英]How does template argument deduction works recursively?

我正在閱讀這篇文章: http : //accu.org/index.php/journals/409 讓我們舉一個簡單的例子:

template<typename T>
void foo(T& param){}

並調用上述函數,如foo("String") 現在推論如何遞歸進行? 我所了解的是,演繹工作是這樣的:

Arg的類型= const char[6] ,參數的類型為T& ->因此T必須為-> T1[] ->這使得像T1 (&) [] ->這樣的參數現在T1必須為const char >像const char (&)[]這樣的參數。

我是對的嗎? 謝謝

PS->我最近開始學習c ++和編程,所以如果我首先通過示例學習語言的核心,而不是關注項目或龐大的算法,那可以嗎? 謝謝

模板推論至少在術語“遞歸”的常規意義上不是遞歸起作用的。 (我覺得您使用的術語不正確)。 實際的推論是相當簡單的。 在此特定情況下, T&const char(&) [6] (正如您正確指出的那樣),這意味着T為const char[6]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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