【发布时间】:2022-01-11 07:26:15
【问题描述】:
我有一个自定义数组类
template <typename T, unsigned L>
class Array
{
T m_buff[L];
};
我的目标是声明一个函数,该函数将获取 Array 类的副本并使用其值返回所有元素的总和。
问题是代码只为定义为int sum(Array<int, 3> a) 的函数编译,而不为定义为int sum(Array<int> a) 的函数编译。
【问题讨论】:
-
template<typename T, unsigned L> T sum(const Array<T,L> &array) { /* calc, return sum */}。您可能需要考虑使用标准库中的类型(例如模板化的std::array)和标准算法(例如std::accumulate())来将其中的元素相加。 -
我知道标准数组实现,但我想自己做一个。