网友gforceca1900关于C++11的评论

来源:互联网 发布:开淘宝怎么上传照片 编辑:程序博客网 时间:2024/05/01 06:11
目标版主的那本书,我也谈谈C++的理解

http://www.itpub.net/forum.php?mod=viewthread&tid=1801062&highlight=&page=2


如果编码style靠近STL, 那么一定会为C++11欢呼雀跃. 回想以前总是要不厌其烦写一堆functor class配合algorithm的使用; 每次都得进入到代码去寻找为什么bind1st和bind2nd又编不过了; template的类型是reference, 代码怎么就不工作了 (reference on reference 问题); 每次为写出又臭又长的iterator类型而深恶痛绝;还有那个罪恶的bind, tuple实现技巧; C++11真是太他妈爽了.


我用仅支持部分C++11 的vs2012写过一些非学习代码(2-3w的规模), 仅仅是大量使用shared_pointer, lamda, move, thread等功能就感觉完全不同. C++表达力真是太强了. 代码中几乎已经完全避免显示的new使用, 显示的for循环 (当然, 可以用for(auto x:container)取代for_each, find_if).C++可以构造你想要的自定义类型和操作. 难怪那些牛人们说C++11是一门新语言,的确,C++11让你的代码风格彻底变化了, 干净,舒适,表达力异常强大.


C++11对资源的控制相当给力, 在代码中彻底贯彻RAII, shared_pointer,move. 应该不会有资源泄漏, 即使有, 也大概只是没有在该用的地方使用weak_ptr,用工具很好查,很好改.写的小心点,异常安全也可以做到.如果还在争论异常好不好之类,别争了,先学会正确使用,再说.小心的使用move,大脑里清晰看到资源是如何在每一步复制或移动的 ,代价有多大,全部都是可控的,没有黑盒子. C++给于的是从抽象的概念到硬件资源的控制力. 最后,别在提添加垃圾回收,现在感觉真没什么必要. 


C++在现代软件中确实没落了, 新的,先进的,流行的框架技术,基本都和C++不沾边. 没有流行的C++框架解决流行的问题, 显得C++那么不入流. 这方面, 是C++短板,并且短时间也不会改变,也许长期也不会改变. 即使C++11和之后,也是着重精力去做基础的类库. 没有基础, 高层建筑无从下手啊. 期望C++能提供完善的基础类库, 至少让大多数任务不要在依赖操作系统的直接调用.做C++的人,可以借助boost, qt来去掉很多系统依赖, 作为标准未完善之前的替代方法.


个人认为,虽然C++不占据流行的主位,但它有自己不可撼动的生存空间: 介于硬件和软件之间. 这里也没有可替代语言(当然, 这个时候,得加上C, 是C/C++). C++依然会在基础软件中得以生存并且发展. 各种排名大多是语言的活跃程度, 不代表构建真实软件世界的语言比例.


C++确实很难学, 我已经不相信重头开始能学会它了. 学的人越来越少, 历史代码依然存在,我的工资会不会再长一些?


0 0