Chinaunix首页 | 论坛 | 博客
  • 博客访问: 990883
  • 博文数量: 158
  • 博客积分: 4380
  • 博客等级: 上校
  • 技术积分: 2367
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-21 10:45
文章分类

全部博文(158)

文章存档

2012年(158)

我的朋友

分类: C/C++

2012-11-20 09:35:39

对于同样的代码:
cout << typeid( 0 << 0 ).name() << endl;
cout << typeid( 0l << 0l ).name() << endl;
cout << typeid( 0 << 0l ).name() << endl;
cout << typeid( 0l << 0 ).name() << endl;

g++3.4.2 输出:
i 即 int
l 即 long
i 即 int
l 即 long

VC++6.0 输出:
long
int
long
int

g++的规律是:结果的类型取决于第一个操作数的类型,这一点要记住,我一开始以为 int<

VC的规律是:???,实在看不出任何规律,但结合gcc的表现来看,那么规律就是:g++输出什么,我就坚决不输出什么,哈哈!

BTW:正如  所说:不能拿vc++6.0和g++想比,那不是一个时代的产品,但
a. 本文目的并不是用于贬低VC++6.0,而只是觉得VC6行为很奇怪,找不到理由得奇怪。
b. 对于VC++,在7.1、7.2、8.0beta2变得成熟且经过市场检验之前,我只敢用VC++6.0。

阅读(3514) | 评论(26) | 转发(0) |
给主人留下些什么吧!~~

网友评论2012-11-20 09:40:42

大仇
我就喜欢用最新的编译器,现在在用vc2005,别以为我是刚出道的人,我可是vc6刚推出来的时候就用vc6的,但现在不只用vc6,新项目都用vc8

网友评论2012-11-20 09:40:32

阿呆
从2001 使用beta2 到现在,我对dotnet 算是资深的。
我支持周星星及他所有说的话。

虽然有些直接和偏见的感觉。但作为一个c++老程序员来说,他说的确实是切身体会。现在做asp.net 相关网站程序自然用dotnet, c#, 但其他主要程序还是使用vc60. 我也经常使用goto和template...其他不说了。

大家也不用吵,每人感觉不一样很正常

网友评论2012-11-20 09:40:22

veiz
"至少从C++兼容程度上,VC.net 2003就是仅次于C++ Builder X的100%的兼容性,达到了98.2%,相比gcc的96%还是略高一筹的。 "

数字虚假就算了,就算是真的,这样从数据上比较有什么意义?能说明什么问题?

"什么东东?如果你这个generic programming不是C++的,别在我这里谈到它”
谈到它不就证明了“2005的变动还是相当大的。但显然不是因为C++编译器不成熟。”这个论点了吗?

虽然评论如此久远的帖子是没有意义的,但是最近手痒。

网友评论2012-11-20 09:40:15

疯子阿虹
1。“如果MS不尽快更新自己的产品难道等别人超过自己?”--- 这个逻辑不是很正确吧?!  

这个好像是微软成功的六个关键一书里面的吧,微软的战略是自己主动淘汰自己的产品,而不是等别人来淘汰自己的产品.

逻辑很正确阿..

网友评论2012-11-20 09:40:03

周星星
我这几天非常忙,没时间一一回复,甚至没有时间仔细看,sorry,其他那些或者是不知所云,或者是过于深奥 的我就不说了,看到两个比较好玩的东西:

1。至少从C++兼容程度上,VC.net 2003就是仅次于C++ Builder X的100%的兼容性,达到了98.2%,相比gcc的96%还是略高一筹的。
------ 互相吹捧吧, CBX达到100%,你当我没用过呀?我不知道你的VC.net2003在C++兼容程度上排第几名,但我知道gcc绝对是第一。当然,大家都已经很出色了,而且每一个标准项的重要程度不一样,99%未必胜过98%,当初CB6也说自己胜过VC6,而且很多我所信任的大师也这么说,可等我自己动手(自己动手,莫信他人)测试了部分之后,恼火的发现,在兼容比例上,两者不像上下,但CB6不兼容的地方都是最常用到的地方,而这一点VC6就很好,越常用的地方越兼容。CB6指着脑门上的1个大洞 嘲笑 VC6断了2根头发,是啊,1小于2,CB6有嘲笑别人的资本,如果它不把伤口部位告诉大家的话。
我仿造一个笑