gpt4 book ai didi

c++ - 我可以在 C++ 的模板函数体中使用模板变量吗

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:56:24 26 4
gpt4 key购买 nike

我写了如下两段代码,编译器输出了一个错误。但我不知道为什么。

模板函数文件:

#ifndef INCLUDE_XXXX
#define INCLUDE_XXXX
#include <vector>
using namespace std;

namespace testns {
template< typename T >
inline T ssum(std::vector<T> v)
{
T _sum;
std::vector<T>::iterator iter; // <-------------- **********
for (iter=v.begin(); iter!=v.end(); ++iter) {
_sum=_sum+(*iter);
}
return _sum;
}; // ssum
}
#endif

主要代码如下,

#include <vector>
#include <iostream>
#include "wyko.hpp"
using namespace std;

int main(){
vector<double> v;
v.push_back(3.0);
v.push_back(2.0);
v.push_back(1.0);
cout<<testns::ssum<double>(v)<<endl;;
return 0;
}

编译后输出如下:

wyko.hpp:14: error: expected `;' before ‘iter’
wyko.hpp:15: error: ‘iter’ was not declared in this scope

我知道问题出在注释行和关于 <T> 的地方但不知道如何修复它。

谢谢

最佳答案

修复:-

T _sum =0; //initialize it
typename std::vector<T>::iterator iter;
// ^^^add typename

关于c++ - 我可以在 C++ 的模板函数体中使用模板变量吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066995/

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