由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教一下这个template function在gcc下要怎么修改
相关主题
a c++ questionC++ template Questions (转载)
template 疑问一个C++ template的问题
C++ question about template typedef[菜鸟问题]类模板问题
vector::iterator不对c++ template question:
template[合集] 关于template和inheritance的问题请教
One c++ non-type template questionC++ 菜鸟问一个关于template 的问题。
where to define my template function私有成员不能用类成员函数修改?
谁给详细说一下这句C++ Q04: template member
相关话题的讨论汇总
话题: typename话题: result话题: gcc话题: template话题: fn
进入Programming版参与讨论
1 (共1页)
b**a
发帖数: 1375
1
下面这个function在visual studio 2010下没问题
template
typename T::value_type reduce(const T& t, Fn f)
{
T::value_type result = *t.begin();
T::const_iterator it=t.begin();
for (++it; it!=t.end(); ++it)
result = f(result, *it);
return result;
}
调用的话比如:
vectorv;
v.push_back(1); v.push_back(2); v.push_back(3);
cout << reduce(v, plus())< 但是在linux的gcc(4.1 -> 4.6)下出现好几个类似
error: need ‘typename’ before ‘T:: value_type’ because ‘T’ is a
dependent scope
的错误.reduce后面跟 >编译错误一样.
请问这个应该怎么改啊?
t****t
发帖数: 6806
2
这不是说得很明白嘛, 你得写
typename T::value_type
typename T::const_iterator
就跟你第二行写的一样

【在 b**a 的大作中提到】
: 下面这个function在visual studio 2010下没问题
: template
: typename T::value_type reduce(const T& t, Fn f)
: {
: T::value_type result = *t.begin();
: T::const_iterator it=t.begin();
: for (++it; it!=t.end(); ++it)
: result = f(result, *it);
: return result;
: }

1 (共1页)
进入Programming版参与讨论
相关主题
C++ Q04: template membertemplate
C++要是有null object就好了One c++ non-type template question
文一个简单的c++where to define my template function
C++ template question谁给详细说一下这句
a c++ questionC++ template Questions (转载)
template 疑问一个C++ template的问题
C++ question about template typedef[菜鸟问题]类模板问题
vector::iterator不对c++ template question:
相关话题的讨论汇总
话题: typename话题: result话题: gcc话题: template话题: fn