孟岩

孟岩ID:myan
[修改头像]
1560134次访问,排名6好友1人,关注者32
总是在思考存在的问题
myan的文章
原创 146 篇
翻译 0 篇
转载 3 篇
评论 5202 篇
最近评论
zfbp:现在成都的状况比较稳定了,已经有很多企业开始上班了。汶川、都江堰还是比较恼火。
jieao111:Kevin在成都啊,,以前记得在c/c++版抢过一同分,,bless!
YuLimin:我当时也在成都,大家都来尽一份力量吧!!!
sxbluebird:我老家后山有棵老苹果树很时尚,谁能看见?我公司桌面上有台PC很时尚,公交车上哪个mm会暗送给我秋天的菠菜?


这个话,说的太经典了。 人人都能懂, 这才是哲理。
Terry001:成都地震发生的时候,我正在午睡,我一般睡的会很死,房子把我摇晃醒了,太恐怖了,结果没穿衣服就冲下了楼,搞的甚是狼狈,从来没想到此生也有裸奔的时候。
直到现在,心情都没稳定下来,不过比512好多了,但是还是很担心余震,现在做在家里上网心都是虚的。成都今天不知道从那里报出的消息要缺水了,结果超市的饮用水一强而空。
目前感觉头脑是昏的,时不时会感觉在晃。目前待在成都似乎是一种折……
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
    相册
    测试
    友情链接
    老赵的博客
    存档

    原创 C++0x草案将于年内发表,C++即将重大升级

    新一篇: 理解正则表达式(程序员第3期文章)


        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的编译器产品。



     

    发表于 @ 2007年02月08日 17:45:00|评论(loading...)|编辑

    旧一篇: 2006高端IT技术图书点评(首发《中华读书报》)

    评论

    #manesking 发表于2007-02-09 09:02:04  IP: 218.108.28.*
    反对!
    很显然,他违背了C++奥义的初衷;
    C++认为:程序员是不会犯错的,程序员写的任何代码都有他自己需要的目的,即便这代码看上去很危险或是错误的;
    C++是充分信任程序员的逻辑正确性的;
    此外,C++最大精髓:内存管理;
    C++又不是Java和C#,而且你去看看,Java和C#解决了内存泄漏问题吗?

    显然,这位大人是个BC,而且希望所有使用C++的人也和他一样BC!
    坚定完毕!
    #woso 发表于2007-02-09 10:18:09  IP: 58.60.231.*
    4. 并发内存模型和并发库:使C++能够在多核时代健康成长;
    ---------------------------------------------------------------------
    这个可能是最重要的
    #wingfiring 发表于2007-02-09 10:18:40  IP:
    符合C++0x的编译器必须提供垃圾收集器.
    --------------------
    需要这个特性,但是也需要这个是可选择和可控制的特性.
    #fdyjfd 发表于2007-02-09 10:28:27  IP: 221.221.18.*
    c++越来越复杂,越来越庞大。C++程序员比别的程序员累,
    写C++编译器的程序员比写别的编译器的程序员更累,希望赶快出现一种新的高执行期效率的语言淘汰C++
    #gameart 发表于2007-02-09 10:50:40  IP:
    2. 垃圾收集:符合C++0x的编译器必须提供垃圾收集器;

    感觉这里可能是与place new & RTTI差不多的意思,可以开关的 GC



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

    这个爽,但是效率与易用性是个问题,现在多数新生代的编译器
    都能支持openmap,说不定就是它了吧^_^



    2. 模块。

    是不是类似 java package 的概念啊
    #cime63 发表于2007-02-09 11:22:11  IP:
    2. 垃圾收集:符合C++0x的编译器必须提供垃圾收集器
    ====================================
    不希望C++发展成另一个JAVA或者C#
    C++应该有自己的特色
    #chai2010 发表于2007-02-09 11:39:49  IP: 218.106.120.*
    同意增加并发支持。
    觉得C++可以适当的扩充库,增加不同平台之间的移植性。
    像文件目录、网络这些,不同系统之间差别太大了。
    #Silent_Spring 发表于2007-02-09 11:49:53  IP: 60.26.128.*
    >>>垃圾收集:符合C++0x的编译器必须提供垃圾收集器

    GC嵌入语言内了?还是通过库提供?
    #gql_w 发表于2007-02-09 11:58:37  IP: 211.95.87.*
    为什么那么多人总希望把C++改造成类C#,不如直接用C#好了。
    MS的C++扩展先是托管,没过多久自己都发现它实在垃圾,又扩展成C++/CLI,也没多少人在用。Sutter是ISO的C++主席,他同时也是MS的!
    MS似乎要劫持所有的标准才甘心!
    #BluntBlade 发表于2007-02-09 12:07:39  IP: 121.35.0.*
    M$首先是一个商业化公司,然后才是一个软件公司。
    所以当劫持可以带来高额利润的时候,这么做就不足为奇了。
    #iceheart 发表于2007-02-09 13:01:04  IP: 124.42.19.*
    >1. 库增强:标准库TR1和TR2中的库增强组件;
    >
    >2. 垃圾收集:符合C++0x的编译器必须提供垃圾收集器;
    >
    >3. Concept:可简化泛型程序的开发;
    >
    >4. 并发内存模型和并发库:使C++能够在多核时代健康成长;

    //加1和3就够了
    //2.垃圾收集, 对c++程序员来说,这是画蛇添足(为我不需要的功能付出性能代价)
    //4.不够通用,并不是每个有c++的系统都有多线程的
    #linkerlin 发表于2007-02-09 13:50:15  IP: 219.133.40.*
    不知道微软的 C++/CLI将怎么同时包含两套 GC 机制?
    或者 C++/CLI 和 managed C++ 一样再次被抛弃?
    感觉微软可以采用同时实现两套 GC 的方式。
    不过,从长远来看, C#的优势是越来越明显了。
    C++的架构庞大,内容繁多,学习曲线笔直,用C++工作辛苦,
    总之,快要没有什么应用非得C++不可了。(有的地方也可以用简洁的C替代)

    可以预计 C++07标准将是C++的最后一个标准。
    Visita时代,在中国 , 非.Net的东西比较难火。
    #cime63 发表于2007-02-09 13:56:59  IP: 220.163.82.*
    可以预计 C++07标准将是C++的最后一个标准。
    Visita时代,在中国 , 非.Net的东西比较难火。
    =============================
    后一句同意,但前一句不敢苟同.
    #sevencat 发表于2007-02-09 14:11:19  IP:
    孟老大,原文在哪里,能贴一下吗?
    #sinall 发表于2007-02-09 14:18:28  IP: 218.97.242.*
    唉……啥也不说了,都在酒里~
    #gameboy007 发表于2007-02-09 15:15:33  IP: 221.125.252.*
    加入垃圾收集器真是画蛇添足!
    使用Smart Pointer半个bit内存也不漏,又有效率,选是留给Java朋友吧,他们可不能没有垃圾收集器,要不然甚麽活。
    #sevencat 发表于2007-02-09 15:19:48  IP: 124.243.200.*
    原文在:http://herbsutter.spaces.live.com/
    线程库,GC可能是最大的两个吧。
    #YidingHe 发表于2007-02-09 16:06:02  IP: 220.169.30.*
    为了提高开发效率,C++ 不得不作出这样的改变。你可以说微软的 Word 是用 C++ 写的;但是当 Google Docs 开始抢占市场的时候,你还有理由来吹嘘 C++ 的执行效率吗?
    #wuchang 发表于2007-02-09 16:36:39  IP: 211.97.79.*
    再改就要成c#子
    #qutr 发表于2007-02-09 16:42:51  IP:
    好久没有关注C++了,C++的这次改变是巨大的。垃圾回收看来是必须的。因为如今的程序员(尤其是新入行的)不能和当年的老一辈比了。
    #21bird 发表于2007-02-09 16:57:56  IP: 202.118.250.*
    垃圾收集器............好哇,这下大家可以放心的只管new不用delete了是吧?!
    #chai2010 发表于2007-02-09 17:14:32  IP: 218.106.120.*
    Google Docs只是客户端。
    没有google服务器的效率支持,怎么能搞定?
    #Googol 发表于2007-02-09 17:17:18  IP: 10.193.48.*
    Stroustrup(凭印象拼的,可能不对)很早就提过要C++以库的方式引入gc。不知道Sutter指的是不是这个。

    利用share_ptr和weak_ptr已经可以部分的完成这个事情了。
    #lovesinox 发表于2007-02-09 17:38:45  IP:
    sepl语言比较简单!
    #callzjy 发表于2007-02-09 18:04:02  IP: 61.153.60.*
    加入垃圾收集器真是画蛇添足!
    #win3999 发表于2007-02-09 18:54:06  IP: 222.188.170.*
    加入垃圾内存回收这那是编程,这简直让程序员养成犯错误的习惯!别把程序员当傻瓜!也只有这些傻瓜(所谓的管理层)才想得出来
    #Silent_Spring 发表于2007-02-09 20:54:23  IP: 221.198.246.*
    天呐,C++别再复杂了啊!
    这几天又看了一些Thinking in C++,处处陷阱,弄得人都不敢编码了.
    #duyanning 发表于2007-02-09 23:26:25  IP: 221.11.38.*
    swing比mfc简单。
    但就语言本身,谁敢说,(现在的)Java比C++更简单?

    垃圾回收有什么不好?bjarne stroustrup不早就说过“C++是最适合垃圾回收的语言”吗?

    Java,C#回收了垃圾内存,却没了与构造函数互补的析构函数。
    而C++却是析构函数+垃圾内存回收,我觉得真是太好了。

    以前回收内存的时机很确定,就是对象生命期结束之后:
    分配在栈上的,退栈的时候自动回收。
    用new分配在堆上,delete析构之后顺便回收。

    现在有了垃圾回收,唯一不同就是回收内存的时机可以跟析构的时机分离开了。别的都一样啊。用得着恐慌吗?
    #gameboy007 发表于2007-02-10 01:41:10  IP: 221.125.252.*
    >> duyanning
    >> 垃圾回收有什么不好?bjarne stroustrup不早就说过“C++是最适合垃圾回收的语言”吗?

    没错! Bjarne Stroustrup在The C++ Programming Language第一版已经说了,但当时还没有出现Smart Pointer这东西!

    现在C++程序员已经大量地使用Smart Pointer,早就解决了内存问题呀!
    #fengjian_net 发表于2007-02-10 08:24:26  IP: 219.220.210.*
    支持!C++只会发展得越来越好,越来越强大!
    #akirya 发表于2007-02-10 08:31:20  IP:
    用智能指针就很好了,为啥非要内存回收呢,不明白。
    就算不用只能指针也应该,自己控制内存的释放与回收。
    #icosagon 发表于2007-02-10 10:19:51  IP: 61.141.190.*
    据我所知 目前c++已有三种自动回收内存的方法
    一是智能指针
    二是指针语义的容器
    三是内存池和对象池
    #duyanning 发表于2007-02-10 13:46:25  IP: 221.11.38.*
    先看看人家原文这段再说:
    Of course, any C++98/03/0x compiler is already free to garbage-collect the whole C++ heap, and a number of current implementations do that; but they aren't required to do so, and this change would require GC to be available in a way that programmers can use and rely on.
    就算一个C++编译器采用了垃圾回收,它也没有违背98年的ISO C++标准。
    以前用或不用,那是实现自己的事情,对用户是透明的。
    将来不过是明确要求所有的编译器必须提供支持而已,而且还可以让程序员选择用或不用。
    难道不更好吗?
    有什么好怕的?又不是要把C++改成Java。
    #duyanning 发表于2007-02-10 13:52:38  IP: 221.11.38.*
    就算一个C++编译器采用了垃圾回收,它也没有违背98年的ISO C++标准。
    以前用或不用,那是实现自己的事情,对用户是透明的。
    将来不过是明确要求所有的编译器必须提供支持而已,而且还可以让程序员选择用或不用。
    难道不更好吗?
    有什么好怕的?又不是要把C++改成Java。
    #Could 发表于2007-02-10 18:33:23  IP: 58.49.67.*
    垃圾回收?
    不要让C++变成弱智的玩具啊。
    #missdeer 发表于2007-02-10 20:14:51  IP:
    好像草稿早就出来了
    #duyanning 发表于2007-02-10 20:55:01  IP: 221.11.38.*
    用智能指针就很好了,为啥非要内存回收呢,不明白。
    ==============================
    delete不是为了释放内存,而是为了析构,释放内存那是顺便做了的事情。
    所以,让智能指针delete与让GC释放内存并不矛盾。
    #forture 发表于2007-02-11 10:22:47  IP:
    事物总要进步的,在这个优胜劣汰的时代。
    楼上各位似乎很有中国的传统特色,封闭,害怕接受新事物
    #gql_w 发表于2007-02-11 12:36:23  IP: 218.1.20.*
    to fortune:
    在你以一个“智者”的高姿态来讥讽中国人的“封闭,害怕新事物的时候”,麻烦你先搞清楚那是不是进步。
    #duyanning 发表于2007-02-11 13:14:18  IP:
    不要认为C++有了GC,就不用delete了。
    new出来的对象仍旧需要delete。
    只要析构函数中还有一行代码,你就不能不调用它,所以delete仍旧是必不可少的。
    就算析构函数是真的什么也没做,出于美学的考虑,你也不会不delete的。
    例如:
    int main()
    {
    char* p = new char;
    f(p);
    // 不要这个delete肯定没问题,但出于美学的考虑,大多数人会这样写
    // delete p;
    }

    至于C++/CLI,是.NET强奸C++的结果吗?错了!那是用C++的优良基因(析构函数)改良C#的结果。
    这不是C++的没落,而是胜利。
    #DentistryDoctor 发表于2007-02-11 13:18:16  IP: 222.212.174.*
    反对垃圾收集机制。
    #gameboy007 发表于2007-02-11 14:44:27  IP: 221.126.132.*
    C++0x 提供GC选项给大家自己决定是否使用GC,这是报告n2129所描述的:
    n2129:
    ... Garbage collection must be available
    ... Garbage collection must be optional
    ...
    也即是说我们可以关闭这项工能,对於一个善於运用智能指针的C++程序员,
    GC可能是一项多馀工能,但对於初学者就好像在使用Java一样简单,如果你的
    程序不需要效率或不关心效率,使用GC可能是好选择,但我们想一想,学习
    内存管理是C和C++程序员的重要学习过程(只有懂得管理内存才能开发高效能
    应用程序),如果你觉得内存管理对你不重要,那麽你又可需要使用C++呢?
    Java不是更好吗?好了,我当你还是重视内存管理,那麽GC可以使我们更加理解
    内存吗?学习内存管理就是要学习如何配置内存和如何释放内存,这只是内存
    管理的第一课呀。

    对於所为 "中国的传统特色,封闭,害怕接受新事物"
    我有完全相反的看法,现在就是因为我们已经不再封闭,才会接受这麽多新的事物,
    有了知识去分辩事情的好坏,我个人来说,我接受智能指针多於GC。

    不过谁又知道编译器实现GC时不就是偷偷地把我们的指针在背後转化为智能指针呢?
    不要笑呀,如果你有留意过GC的程序实现都会发现,其内部只不过是实现一个
    智能指针的模式吧了。

    所为智能指针模式,就是把原始指针转化为一种在复制和死亡时自动执行其应有任
    务的对象,对於智能指针,这不是更好地解决了C++原始指针没有OO行为的关键吗?
    大家都说C++并非完全的OO,不就是C++还在使用没有OO行为的原始变数int, double,
    指针等等吗,现在出现了智能指针,它把C++推向更接近OO,是不是因为智能指针设计
    简单就认为它不及GC呢?

    所以我认为GC的出现主要是为迎合市场需要,给C++初学者的一粒奶油糖。
    #serinn 发表于2007-02-11 20:02:17  IP: 124.226.104.*
    工具箱中又多了几把老虎钳. 不错的嘛
    #lookfar 发表于2007-02-12 08:50:38  IP: 218.28.20.*
    地产群北京8844541上海8533106天津8784006重庆7014934广州8597240杭州8624356成都8641886西安8726449沈阳24644281武汉8753532南京8413435深圳9147248郑州6541770哈尔滨8975525 石家庄8816465贵阳 1893928海南10053620济南10126420昆明1881877南昌10014278福州7445538温州24644192珠三角房地产联盟13419434新居配套服务组11571395郑州购房联盟12970630
    #god_fn 发表于2007-02-12 08:57:56  IP: 222.244.173.*
    对於所为 "中国的传统特色,封闭,害怕接受新事物"
    我有完全相反的看法,现在就是因为我们已经不再封闭,才会接受这麽多新的事物,
    有了知识去分辩事情的好坏,我个人来说,我接受智能指针多於GC。
    =======================================

    不是害怕接受新事物 而是老变来变去的 我受不了 我只是个新手 现在在java 不过是喜欢c++而已(主要是老鸟都说他强) 用VC6入门 习惯了delete 后来看了点书(主要是看库的源码发现) 才知道用Smart Pointer 现在又要变 我都没信心了
    #awjx 发表于2007-02-12 12:36:26  IP: 220.202.100.*
    2. 垃圾收集:符合C++0x的编译器必须提供垃圾收集器
    -----------------------------------
    反对,垃圾应该由自已控制,而不要编译器去做这些,如果搞些什么收集器,真的与什么C#差不多了!
    那我不如用C#。
    #sevencat 发表于2007-02-12 13:06:19  IP: 124.243.200.*
    那个线程库估计跟openmp没啥关系,估计更接近boost::thread,
    草案可能快要出来,但要等到编译器都实现了,估计还得有个几年功夫吧,没三四年估计不太现实。

    对目前这两年的开发没啥太大的用处。
    #nacarat 发表于2007-02-12 13:12:49  IP:
    垃圾收集器.要这个的话我还不如直接用C#。
    多于,没有必要
    #axx1611 发表于2007-02-13 09:42:24  IP:
    垃圾收集器.要这个的话我还不如直接用C#。

    ---------------------------------

    那非WINDOWS平台下的人用什么?mono?
    #LiuHeng65 发表于2007-02-19 17:44:55  IP: 222.187.240.*
    我也认为垃圾收集应该通过库的方式实现.我更期待的是并发内存模型和二进制兼容性(对COM)
    #jiangkeredgirl 发表于2007-03-15 21:35:47  IP: 61.144.207.*
    智能指针不是很不好用吗?
    用它还不如不用
    #yaotong 发表于2007-03-17 13:36:47  IP: 121.25.64.*
    又见sinox
    哈哈
    建议不要叫C++语言了,应该叫C+++
    #wantjutju 发表于2007-03-18 16:31:59  IP: 211.137.169.*
    3. Concept:可简化泛型程序的开发;

    个人比较赞这个

    GC不会是类似于MFC中的_DEBUG_NEW的形式吧
    只是供调试使用
    在Release版本中不会出现?

    Maybe
    #cnheying 发表于2007-05-11 20:26:20  IP: 222.55.125.*
    其实有没有垃圾回收机制都无所谓。关键是开发效率和运行效率。
    其实java有很多东西都是玩玩概念,骗骗新手罢了,真的用起来并没有那么好。(我基本上只怀恋java的文档和stringtoknier???都忘了怎么拼了)
    c++也应该先将一些新手骗进来。其实c++比较亏的地方就是没有像java那样骗人,比如,“一次编写,到处都可以运行”,结果还不是要测试n个版本
    #zeusever 发表于2007-05-18 10:22:45  IP: 125.70.228.*
    其实,有一点比较重要:一个现代gc的内存分配效率比crt内存分配效率高不少。就看这点我都愿意在c++中使用gc。还有不要以为一个smartpoint就可以搞定所有的编程问题,在多线程环境中smartpoint 要实现多线程安全真的有点免为难了。
    #HolmesConan 发表于2007-06-25 22:13:37  IP: 221.192.237.*
    感觉GC还是应该是可选的好,强加得使用,可能大家都不会愿意的。
    不过,可能编译器不会那么晚才出来。因为GCC已经有动静了。
    GCC4.3.0已经开始尝试支持C++09的一的特性.
    等标准通过的时候,可能大部分的C++09特性都已经有试用版本了.

    C++社区还是这么不冷静,唉……
    有意见去
    googler groups comp.std.c++
    http://www.open-std.org/jtc1/sc22/wg21/
    上提一下
    咱们中国人,使用C++的人也不算少了,对标准化的参与真是没法说,唉。
    #科宇哥哥 发表于2007-07-13 10:59:35  IP: 61.186.141.*
    专家研究组的成员绝不是几个搞过两三年 C++_Like Project 的小毛驴,标准制定所花的时间和经验背景,也绝不是我们这样的“用户”所能企及的,当然,在这过程中,也有对市场的妥协。但我相信,至少应该比我们的评论合理得多。

    所以,祝福 C++ 吧。和 JAVA D C# 这些优秀的语言一齐发展。谁会被淘汰,谁又会火爆都不是坏事。
    #baodi_z 发表于2007-07-13 17:25:45  IP: 59.61.91.*
    并发内存模型和并发库:使C++能够在多核时代健康成长
    ---------------------
    这个我喜欢,不过并发库貌似有很长的路要走,估计要是intel愿意贡献他们的多线程工具就好多了
    #bigrat 发表于2007-07-23 14:53:41  IP: 61.170.226.*
    支持GC,可以对现有的delete方式进行补充
    这样编写的灵活性也就增加了

    C++进行调整时,应着重调整引起陷阱、语义不清的地方
    希望未来的C++能自建一套标准,从语言级支持通用组件模型
    #howlet2 发表于2007-08-18 18:36:44  IP: 124.160.87.*
    还是自己钻心研究自己的东西好
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 孟岩