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