免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 75892 | 回复: 48

[C++] 【有奖讨论】随着 C++11 的巨大变化,谈谈你对新STL的展望 [复制链接]

论坛徽章:
17
处女座
日期:2013-08-27 09:59:352015亚冠之柏太阳神
日期:2015-07-30 10:16:402015亚冠之萨济拖拉机
日期:2015-07-29 18:58:182015年亚洲杯之巴勒斯坦
日期:2015-03-06 17:38:17摩羯座
日期:2014-12-11 21:31:34戌狗
日期:2014-07-20 20:57:32子鼠
日期:2014-05-15 16:25:21亥猪
日期:2014-02-11 17:32:05丑牛
日期:2014-01-20 15:45:51丑牛
日期:2013-10-22 11:12:56双子座
日期:2013-10-18 16:28:17白羊座
日期:2013-10-18 10:50:45
发表于 2015-06-17 15:30 |显示全部楼层

获奖名单已公布:http://bbs.chinaunix.net/thread-4182877-1-1.html

话题背景
高质量的库是成功的基石,在很大程度上来讲如果没有STL,C++就不会变的如此成功。相信每一个真正的C++使用者都应该洞悉STL的设计,如此才能使得在使用C++的过程中事半功倍。C++11 为C++带来了巨量的新特性,更甚者有人说这是一个新语言。C++11的变化如此之大,而STL又如此之重要,在此大家可以对新形势下的新STL展开讨论


讨论话题
1、你是否完整的了解过C++98: 2003 标准下的STL设计和实现,并且对你产生了怎么样的影响?
2、你是否认同在开发同应该尽量使用STL,而不是自信的经常重复造轮子?
3、你对C++11标准下的STL有什么样的期望,新的STL特性目前有使用吗?
4、对你来讲STL还有哪些是急需改进的地方。
5、对于STL的未来你的预期是什么样的?


讨论时间
2015年6月17日-2015年7月18日


活动奖励
活动结束后将选取3名讨论精彩的童鞋,每人赠送图书《C++标准库 (第2版) 》一本作为奖励。


奖品简介
5577a6baN82593988.jpg

作者:【德】Nicolai M. Josuttis(尼古拉·约祖蒂斯) 著
译者:侯捷
出版社:电子工业出版社
出版日期:2015年6月出版
开本:16开
页码:1128页
版次:1-1
定价:186.00元


内容提要
《C++标准库(第2版)》是全球C++经典权威参考书籍时隔12年,基于C++11标准的全新重大升级。标准库提供了一组公共类和接口,极大地拓展了C++语言核心功能。《C++标准库(第2版)》详细讲解了每一标准库组件,包括其设计目的和方法、复杂概念的剖析、实用而高效的编程细节、存在的陷阱、重要的类和函数,又辅以大量用C++11标准实现的实用代码范例。除覆盖全新组件、特性外,《C++标准库(第2版)》一如前版,重点着眼于标准模板库(STL),涉及容器、迭代器、函数对象以及STL算法。此外,《C++标准库(第2版)》同样关注lambda表达式、基于区间的for循环、move语义及可变参数模板等标准库中的新式C++编程风格及其影响。

论坛徽章:
43
15-16赛季CBA联赛之四川
日期:2018-10-13 23:26:5015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:36程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
发表于 2015-06-17 16:55 |显示全部楼层
本帖最后由 windoze 于 2015-06-18 11:16 编辑

1、你是否完整的了解过C++98: 2003 标准下的STL设计和实现,并且对你产生了怎么样的影响?
“完整”很难说,毕竟我不是每个STL的功能都用过,不过90%的比例应该有了。STL是目前所有主流编程语言和库里唯一一个能基本做到zero cost abstraction的。

2、你是否认同在开发同应该尽量使用STL,而不是自信的经常重复造轮子?
早期的STL比如VC6或者Borland C++Builder6的版本有不少bug,但现在的STL已经没什么问题了,除非你的工作环境很特殊,否则不用STL就是浪费时间。当然STL里的轮子还不够多,经常需要自造新的。

3、你对C++11标准下的STL有什么样的期望,新的STL特性目前有使用吗?
C++11下的STL已经没什么惊喜了,毕竟绝大部分新增的东西都是从Boost里直接搬来的,比如智能指针或者unordered_map之类,但C++11新增的r-value reference和variadic template填上了几个大坑,现在的STL显然更好用。

4、对你来讲STL还有哪些是急需改进的地方。
急需改进的地方还有不少,基本都是没跟上语言的最新标准造成的,比如:
  • 漏掉了一些东西,当然很多都在C++14里补上了,但毕竟C++14还不是一个广泛可用的东西,典型如integer_sequence,这是一个在TMP里经常用到的东西,再比如invoke(很多语言里把这个东西叫apply),连C++14里都没有。
  • 很多地方没有用constexpr,比如tuple的constructor。另外array好像直到C++14也没有constexpr constructor
  • 没有用static_assert,这会导致编译错误非常复杂难懂,虽然GCC4.9/5和Clang都已经做了很多改进,但加上static_assert能显式更有针对性的错误信息
  • 很多地方没有用noexcept,这个东西已经进了C++11的标准,但STL里大部分该用它的地方还都没用,所以在写exception free程序的时候会遇到一些问题。


5、对于STL的未来你的预期是什么样的?
把上面提到的坑填上,另外期待Concept(不是Concept Lite这种半残废)进入C++标准,这样TMP就不会那么反人类了,当然STL也可以搞得更好用。
另外STL也可以继续扩展范围,涵盖更多常用的功能,比如file system,矩阵运算,增强并行处理功能之类。

论坛徽章:
17
处女座
日期:2013-08-27 09:59:352015亚冠之柏太阳神
日期:2015-07-30 10:16:402015亚冠之萨济拖拉机
日期:2015-07-29 18:58:182015年亚洲杯之巴勒斯坦
日期:2015-03-06 17:38:17摩羯座
日期:2014-12-11 21:31:34戌狗
日期:2014-07-20 20:57:32子鼠
日期:2014-05-15 16:25:21亥猪
日期:2014-02-11 17:32:05丑牛
日期:2014-01-20 15:45:51丑牛
日期:2013-10-22 11:12:56双子座
日期:2013-10-18 16:28:17白羊座
日期:2013-10-18 10:50:45
发表于 2015-06-17 18:27 |显示全部楼层
回复 2# windoze


    建议兄台按要求归整下回复,尽量把所有问题都谈一谈。你的回复还是很有质量的。

论坛徽章:
9
2015年亚洲杯之卡塔尔
日期:2015-05-07 07:05:542015亚冠之鹿岛鹿角
日期:2015-05-29 14:55:522015亚冠之鹿岛鹿角
日期:2015-06-11 09:55:192015亚冠之山东鲁能
日期:2015-06-19 23:53:042015亚冠之大阪钢巴
日期:2015-06-23 21:03:17操作系统版块每日发帖之星
日期:2015-06-23 22:20:00操作系统版块每日发帖之星
日期:2015-06-27 22:20:002015亚冠之布里斯班狮吼
日期:2015-07-04 03:40:012015亚冠之平阳省
日期:2015-07-12 09:32:55
发表于 2015-06-17 19:35 |显示全部楼层
好活动,支持............

论坛徽章:
15
2015七夕节徽章
日期:2015-08-21 11:06:172017金鸡报晓
日期:2017-01-10 15:19:56极客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之新疆
日期:2016-01-25 14:01:34IT运维版块每周发帖之星
日期:2016-01-07 23:04:26数据库技术版块每日发帖之星
日期:2016-01-03 06:20:00数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2015-06-18 09:19 |显示全部楼层
好东东,C++之前发展很慢,现在加快了很多,期待中
1、你是否完整的了解过C++98: 2003 标准下的STL设计和实现,并且对你产生了怎么样的影响?
说句实话,我只看过侯捷写的几本书,而且都是大致翻阅,库主要是元编程,看起来很晦涩,对我有点帮助但不大

2、你是否认同在开发同应该尽量使用STL,而不是自信的经常重复造轮子?
确实尽量使用STL,但之前库的发展太慢,比如hash_map之前就没有,另外有的时候对库本身的实现不是很了解,出现问题感觉很难定位,还不如重复造轮子

3、你对C++11标准下的STL有什么样的期望,新的STL特性目前有使用吗?
C++11用的还不多,基本上用的比较多的是智能指针之类的,其它特性因为已经有对应的代码实现,不可能修改为新标准STL库

4、对你来讲STL还有哪些是急需改进的地方。
其实等我使用Java编程以后,我更喜欢Java Maven的包管理方式,我时常想如果C++有这个功能就好了,当然这个偏题了
STL主要的问题还是编译器实现速度太慢,特性没有跟上来,而且编译的时候又需要加诸如std=c++11之类的,让新入门的人产生了很多混绕

5、对于STL的未来你的预期是什么样的?
其实现在C++已经很复杂也很臃肿了,但很多吸引人特性却并没有,比如actor模型等等

论坛徽章:
43
15-16赛季CBA联赛之四川
日期:2018-10-13 23:26:5015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:36程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
发表于 2015-06-18 11:48 |显示全部楼层
昨天每时间,写的比较简单,今天更新了一下

论坛徽章:
2
2015亚冠之平阳省
日期:2015-07-08 10:15:132015亚冠之广州恒大
日期:2015-08-11 10:11:23
发表于 2015-06-18 19:07 |显示全部楼层
大猫哥好厉害。回复 6# windoze


   

论坛徽章:
0
发表于 2015-06-19 00:51 |显示全部楼层
C++很悲剧。底层拼不过C,上层拼不过Java C#。。。

论坛徽章:
15
2015七夕节徽章
日期:2015-08-21 11:06:172017金鸡报晓
日期:2017-01-10 15:19:56极客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之新疆
日期:2016-01-25 14:01:34IT运维版块每周发帖之星
日期:2016-01-07 23:04:26数据库技术版块每日发帖之星
日期:2016-01-03 06:20:00数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
发表于 2015-06-19 09:51 |显示全部楼层
ctrigger 发表于 2015-06-19 00:51
C++很悲剧。底层拼不过C,上层拼不过Java C#。。。

主要还是库发展太过缓慢,错失了宝贵的发展时期

论坛徽章:
5
狮子座
日期:2013-12-27 09:27:26戌狗
日期:2014-01-03 09:34:38巳蛇
日期:2014-03-03 17:29:06金牛座
日期:2014-04-04 13:47:20综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00
发表于 2015-06-19 11:21 |显示全部楼层
不用stl,c++如果用stl',那还不如去用java和c#.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


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

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP