Redian新闻
>
这段 C++ 怎么改才能编译?
avatar
这段 C++ 怎么改才能编译?# Programming - 葵花宝典
r*t
1
在 arr 里面找最大值的一段 code, gcc-2.95 没问题,gcc-4.3 不行:
template
T
max_over_all(const Array &arr)
{
Array::const_iterator a_it = arr.begin();
T max_val = *a_it; // Our first guess is the first value.
for (++a_it; a_it != arr.end(); ++a_it)
if (*a_it > max_val)
max_val = *a_it;
return max_val;
}
用 gcc-4.3 错误如下:
...
/.../my_blitz.h: In function `T blitz::max_over_all(const blitz::Arraynumtype, N_rank>&)':
/.../my_blitz.h:95:
avatar
a*a
2
是不是const_iterator被编译器认为是个代表值的符号了?试试看加个typename的修饰
行不行?

【在 r****t 的大作中提到】
: 在 arr 里面找最大值的一段 code, gcc-2.95 没问题,gcc-4.3 不行:
: template
: T
: max_over_all(const Array &arr)
: {
: Array::const_iterator a_it = arr.begin();
: T max_val = *a_it; // Our first guess is the first value.
: for (++a_it; a_it != arr.end(); ++a_it)
: if (*a_it > max_val)
: max_val = *a_it;

avatar
t*t
3
就是加typename就可以了
顺便问下谁写的code, 干嘛不用std::max_element

【在 a**a 的大作中提到】
: 是不是const_iterator被编译器认为是个代表值的符号了?试试看加个typename的修饰
: 行不行?

avatar
r*t
4
some old code by someone from about 199x, compiled with gcc-2.95. is std:max
_element around at that time?
How hard would it be to port this code to gcc-4.3? I am getting more and
more template-related compiling errors.

【在 t****t 的大作中提到】
: 就是加typename就可以了
: 顺便问下谁写的code, 干嘛不用std::max_element

avatar
t*t
5
不是说了加个typename就可以了吗.

max

【在 r****t 的大作中提到】
: some old code by someone from about 199x, compiled with gcc-2.95. is std:max
: _element around at that time?
: How hard would it be to port this code to gcc-4.3? I am getting more and
: more template-related compiling errors.

avatar
r*t
6
诶,这个编过了。
又遇到新问题了。。和 initialization 有关。。过会贴上来问。

【在 t****t 的大作中提到】
: 不是说了加个typename就可以了吗.
:
: max

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。