模板参数推导是如何递归工作的

How does template argument deduction works recursively?

本文关键字:递归 工作 何递归 参数      更新时间:2023-10-16

我正在阅读这篇文章:http://accu.org/index.php/journals/409。让我们举一个简单的例子:

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

并像CCD_ 1一样调用上述函数。现在,演绎是如何递归工作的。我所理解的是演绎是这样的:

Arg的类型=const char[6],参数的类型为T&->所以T必须是->T1[]->,这使得参数类似于T1 (&) []->现在T1必须是const char->,这使得参数类似于const char (&)[]

我走的路对吗?感谢

p.S->我最近开始学习c++和编程,所以如果我先通过例子学习语言核心,而不是关注项目或庞大的算法,那可以吗?感谢

模板推导不能递归工作,至少在术语"递归"的传统意义上是这样。(我觉得你用错了这个词)。实际的推导相当简单。在这种特殊情况下,foo("String")0是const char(&) [6](正如您正确指出的),这意味着T是const char[6]