在提供的 C 代码中,声明名为 cal_size 的函数模板接受数组作为其参数。函数模板根据参数类型推导出数组的大小并打印出来。
问题来了:模板参数 N 如何自动初始化为数组的正确大小,而无需在函数中显式指定它call?
理解这种行为的关键在于模板参数推导的过程。当调用模板函数时,编译器使用参数的实际类型来推导模板参数的值。
对于 cal_size,参数类型是 T 类型元素的数组,其中指定大小 N。编译器根据数组的元素类型推导 T,并根据数组的大小推导 N。
当参数 a 传递给函数时,编译器将 T 推导为int 和 N 为 6。同样,当传递 b 时,T 为 int,N 为 1。
根据 T 和 N 的推导值,编译器生成函数模板的单独的、专门的版本。对于每次调用,都会使用参数数组的特定类型和大小信息创建一个专用函数。
在这种特殊情况下,会生成两个专用函数:
main 函数本质上就是调用这些专门的函数。
以上是C 如何推导函数模板中的数组大小?的详细内容。更多信息请关注PHP中文网其他相关文章!