首页 > 代码库 > name lookup of 'res' changed for new ISO(转)
name lookup of 'res' changed for new ISO(转)
{
int exp = 10;
cout << pow ( val, exp ) << endl;
{
for ( int res=1 ; exp > 0; exp-- )
return res;
在linux下用g++编译会出现如下错误:
error: name lookup of ‘res’ changed for ISO ‘for’ scoping
note: (if you use ‘-fpermissive’ G++ will accept your code)
它说的是 for 循环中在 “初始化”部分 定义的变量的作用域范围的一个问题。ISO/ANSI C++ 把在此定义的变量的作用域范围限定在 for 循环体 内,或者说,出了循环体之外这个变量就无效了。可以使用‘-fpermissive’使编译通过。
应该把红色部分改成:
int res;
for ( res=1 ; exp > 0; exp-- )
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。