gpt4 book ai didi

c++ - 为什么 GCC 不允许我将模板参数用于另一个模板的参数?

转载 作者:太空狗 更新时间:2023-10-29 23:47:21 26 4
gpt4 key购买 nike

我编写了以下模板函数来对 std::vector 对象的内容求和。它位于一个名为 sum.cpp 的文件中。

#include <vector>

template<typename T>
T sum(const std::vector<T>* objs) {
T total;
std::vector<T>::size_type i;
for(i = 0; i < objs->size(); i++) {
total += (*objs)[i];
}
return total;
}

当我尝试编译这个函数时,G++ 吐出以下错误:

sum.cpp: In function ‘T sum(const std::vector<T, std::allocator<_Tp1> >*)’:
sum.cpp:6: error: expected ‘;’ before ‘i’
sum.cpp:7: error: ‘i’ was not declared in this scope

据我所知,返回此错误的原因是因为 std::vector<T>::size_type无法解析为类型。我唯一的选择是退回到std::size_t (如果我理解正确,这与 std::vector<T>::size_type 相同经常总是),或者有解决方法吗?

最佳答案

关于c++ - 为什么 GCC 不允许我将模板参数用于另一个模板的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5971597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com