| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 455 人关注过本帖
标题:C++0x草案将于年内发表,C++即将重大升级
只看楼主 加入收藏
zhangyq73
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-2-12
收藏
 问题点数:0 回复次数:1 
C++0x草案将于年内发表,C++即将重大升级
C++标准委员会主席Herb Sutter在最新的Blog里透露,C++0X的草案将很有可能在07年10月完成。这意味着“标准C++ 2.0”即将露出庐山真面目。

Sutter在这篇文章里描述了C++0x的几个重大进展:

1. 库增强:标准库TR1和TR2中的库增强组件;

2. 垃圾收集:符合C++0x的编译器必须提供垃圾收集器;

3. Concept:可简化泛型程序的开发;

4. 并发内存模型和并发库:使C++能够在多核时代健康成长;

没有被包括在C++0x中的重要特征包括:

1. 统一的动态加载模型;

2. 模块。

Sutter承诺说,C++0x发布之后会立刻着手做这两项工作。

从Sutter的叙述来看,C++0x将是C++的一次重大升级,如果编译器厂商能够尽快提供编译器产品,那么C++将能够在新的多核时代保持自己独特的优势,从而发展下去。当然,要完全达到标准的要求并不容易,时间上看,恐怕2009年之前不会出现符合C++0x的编译器产品。
从上一个标准C++98发布到现在,将近有10年的时间了,在这十年的时间里编程语言发生了翻天覆地的变化,首先是JAVA异军突起,然后是微软借助.NET平台的优势推出了C#,C++已经不再是编程语言中的明星了,它被挤下了神坛,慢慢沦为边缘编程语言。这中间的主要原因并不是C++的语法落伍了,而是使用C++开发软件效率低下并且容易出错。效率低下的原因是因为C++缺少库的支持,C++只提供了编程语言的基本功能,缺少强有力的库支持,比如字符串处理就一直是C++的诟病。容易出错的原因是C++从C继承了动态内存分配和指针,这一点被认为是软件发生错误的根源,虽然C++引入STL来解决这个问题,比如用vector代替内置数组可以防止内存泄漏,用迭代器代替直接下标操作可以防止地址越界。但是STL毕竟太简单了,比如字符串处理就只有一个简单的string,比起Perl差远了。C++唯一的优势就是速度,但是随着处理器和内存的快速发展也慢慢被遗忘了,所以就沦落到了现在的地步。

C++要想摆脱这种局面,就必须解决这两个问题,而在新标准中我们已经看到了答案。TR1和TR2已经成为新的标准库的一部分,它们不仅提供了象“正则表达式”和“哈希表”这样程序员盼望已久的功能,还有针对多核处理器的并发内存模型和并发库,对网络也有socket库等等。针对内存出错问题,新标准通过强化STL代替内存访问,使用垃圾收集器防止内存泄漏。在C++社区上关于新标准讨论最多的就是到底应不应该修改C++语言,争论的核心之一就是垃圾收集器。老鸟们总是认为“不要为了新手而将C++降格,适合新手的语言已经有很多了!”,很多C++程序员认为新标准应该将精力集中于扩充标准库,而不是解决内存泄漏问题,因为那是程序员自己的事。在本人看来这种思想将会害死C++,因为现实中总是新手比老鸟多,软件公司的老板招一个程序员是希望他(她,它)能够立即开始编写没有错误的代码,而不是培养他们知道他们成为专家后再开始干活,所以,如果C++不能成为一种“菜鸟友好”的语言,那么C++的堕落将不可避免。设想某个程序员分配了一块内存而忘记释放它,但是垃圾收集器捕获了这个异常并默默地替他释放了这块内存,从而使内存泄漏这种悲惨的事情得以避免,而程序运行起来状态良好,那还有什么理由不在C++中添加垃圾收集功能呢?

搜索更多相关主题的帖子: blog 内存 垃圾 
2007-02-15 09:38
清澂居士
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:1237
专家分:7
注 册:2006-12-19
收藏
得分:0 
可惜我英文不怎麼樣````很多都看不懂``

佛曰:\"前世的500次回眸才换来今生的一次擦肩而过\".我宁愿用来世的一次擦肩而过来换得今生的500次回眸.
2007-02-16 13:45
快速回复:C++0x草案将于年内发表,C++即将重大升级
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014231 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved