繁体   English   中英

采用模板化长度参数的 Function

[英]Function that takes templated length parameter

我有一个自定义数组 class

template <typename T, unsigned L>
class Array
{ ... };

我的目标是声明一个 function 将获取数组 class 的副本并使用其值返回所有元素的总和。
问题是代码仅针对定义为int sum(Array<int, 3> a)的 function 编译,而不针对定义为int sum(Array<int> a)的 function 编译。

不适用于定义为 int sum(Array a) 的 function。

那是因为Array<int>不是有效类型。 您的Array模板需要两个参数,而不是一个。

您正在寻找的只是另一个模板 function:

template<unsigned size> int sum(const Array<int, size> &a)
{
   // Function code here:
}

至于如何对其进行编码:只需考虑您的代码需要是什么,以防您的Array<int, 3>或者,也许是Array<int, 100000>并将3100000替换为size /

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM