原帖由 isnowran 于 2006-7-12 15:25 发表
我觉得直到2005vc都不是标准的,可以通过简单的测试验证一下:
复制代码
- int i = 0;
- for( int i = 0; i < 1; i++ )
- {}
非标准的vc认为for循环的 int i 并非是局部变量
原帖由 apollolegend 于 2006-7-12 16:03 发表
for循环中定义的变量的作用域在编译选项里是可以设置的,虽然微软独断专行,但对ANSI C++新标准的支持应该是没有问题的。如果你需要最新的C++标准我可以发给你一份,不过是E文的,而且有700多页!
原帖由 apollolegend 于 2006-7-12 16:03 发表
for循环中定义的变量的作用域在编译选项里是可以设置的,虽然微软独断专行,但对ANSI C++新标准的支持应该是没有问题的。如果你需要最新的C++标准我可以发给你一份,不过是E文的,而且有700多页!
原帖由 isnowran 于 2006-7-12 15:25 发表
我觉得直到2005vc都不是标准的,可以通过简单的测试验证一下:
复制代码
- int i = 0;
- for( int i = 0; i < 1; i++ )
- {}
非标准的vc认为for循环的 int i 并非是局部变量
原帖由 lenovo 于 2006-7-12 17:51 发表
>>for循环中定义的变量的作用域在编译选项里是可以设置的
标准里是这样说的吗?![]()
原帖由 apollolegend 于 2006-7-12 20:09 发表
我觉得大家不能斥责那些遵守标准并且有些扩充的编译器(厂商),反而应该斥责那些根本就不遵守标准的编译器(厂商)。如果大家都乖乖的遵守标准,C++就不会是一个从90年的第一个C++标准到03年IOS/IEC14882的不断 ...
原帖由 assiss 于 2006-7-12 20:20 发表
其实扩展本没什么,GCC同样也有很多扩展。
但VC默认的编译竟然不支持标准,这有点过分了。非要去改选项才能支持,让人觉得它是在劫持标准。
原帖由 apollolegend 于 2006-7-12 19:43 发表
举个最简单的例子:
你买了一台电脑,它只能在220V的电压下工作
而我也买了一台电脑,只不过他即可以在220v电压下工作也可以在110V(某些国家的市电电压)的电压下工作,
而这种转化只是经过一个小小的开关就可 ...
原帖由 mik 于 2006-7-12 23:40 发表
毫无意义的讨论
原帖由 mik 于 2006-7-12 23:53 发表
VC 对 C++ 标准支持不好是公认的
我们也管不着人家微软,你如果win平台工作,使用c++的话,似乎只有接受了
无谓再做什么讨论
原帖由 ttttstttt 于 2006-7-13 10:11 发表
果然是无意义的讨论。
首先,标准和标准的实现不是一回事。所以上面有人说,“for循环中定义的变量的作用域在编译选项里是可以设置的,标准里是这样说的吗?”没意义。没有哪个标准会规定这种不属于标准范畴的 ...
原帖由 ttttstttt 于 2006-7-13 10:11 发表
果然是无意义的讨论。
首先,标准和标准的实现不是一回事。所以上面有人说,“for循环中定义的变量的作用域在编译选项里是可以设置的,标准里是这样说的吗?”没意义。没有哪个标准会规定这种不属于标准范畴的 ...
原帖由 isnowran 于 2006-7-13 13:22 发表
我们都喜欢扩展,但都不喜欢相悖;既然能称之为扩展,最起码应该向上兼容;
我并不认为for循环的变量外部可见行为是“扩展”,分明就是“相悖”!
如果你的代码有10万行,在dev下编译很正常,连警告都没有 ...
原帖由 lenovo 于 2006-7-13 13:00 发表
>>没有哪个标准会规定这种不属于标准范畴的标准的实现。
这句话是什么意思?
原帖由 apollolegend 于 2006-7-12 16:03 发表
for循环中定义的变量的作用域在编译选项里是可以设置的,虽然微软独断专行,但对ANSI C++新标准的支持应该是没有问题的。如果你需要最新的C++标准我可以发给你一份,不过是E文的,而且有700多页!
原帖由 ttttstttt 于 2006-7-13 14:00 发表
1。这个不属于标准的范畴,
2。标准的实现和标准不是一个意思。
原帖由 kuaizaifeng 于 2006-7-13 16:28 发表
可以发给我一份吗?
kuaizaifeng@gmail.com
谢谢了先![]()
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |