我正在读这篇文章:http://accu.org/index.php/journals/409。我们举一个简单的例子:
template<typename T>
void foo(T& param){}
并调用上面的函数foo("String")
。现在演绎如何递归? 。我所理解的是演绎的作用是这样的:
Arg类型= const char[6]
,参数类型为T&
- &gt;
所以T
必须是 - &gt; T1[]
- &gt;这使参数像T1 (&) []
- &GT;现在T1
必须const char
- &gt;这使得参数像const char (&)[]
。
我是正确的道路吗?感谢
P.S - &gt;我最近开始学习c ++和编程,所以如果我首先用示例学习语言核心而不是关注项目或大算法,这样可以吗?感谢
答案 0 :(得分:0)
模板推导不能递归地起作用,至少在术语“递归”的传统意义上是这样。 (我觉得你使用的术语不正确)。实际的推论相当简单。
在这种特殊情况下,T&
为const char(&) [6]
(正如您正确指出的那样),这意味着T为const char[6]
。