免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: myworkstation
打印 上一主题 下一主题

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

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-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:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
21 [报告]
发表于 2015-06-30 15:17 |只看该作者
回复 20# wwwsq


bionic不是libc么?和STL有什么关系?

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
22 [报告]
发表于 2015-06-30 23:33 |只看该作者
C++ 真心搞不来 只能看高手秀技术了 (还有可能看不懂 。。。

论坛徽章:
1
亥猪
日期:2013-12-07 17:52:11
23 [报告]
发表于 2015-07-01 10:15 |只看该作者
1、你是否完整的了解过C++98: 2003 标准下的STL设计和实现,并且对你产生了怎么样的影响?
  没太可能完整了解,只能说离开它,都不太会写C++代码了.
2、你是否认同在开发同应该尽量使用STL,而不是自信的经常重复造轮子?
  如非必要,没必要造轮子.有些实在必要的,会先找找大公司开源的轮子来用。
3、你对C++11标准下的STL有什么样的期望,新的STL特性目前有使用吗?
    有尽量用新的STL来解决问题,但还有好多特性没摸清楚。
4、对你来讲STL还有哪些是急需改进的地方。
     我要的基本都有,其它想要的一些特性等C++17标准了,希望到时STL能即时跟上
5、对于STL的未来你的预期是什么样的?
   不挂就好。

论坛徽章:
0
24 [报告]
发表于 2015-07-01 14:27 |只看该作者
本帖最后由 wwwsq 于 2015-07-01 14:28 编辑
windoze 发表于 2015-06-30 15:17
回复 20# wwwsq



笔误。已修正。

STL希望非常通用,但是它付出了巨大的努力却效果不佳。一是使用范围不够广,二是缺乏兼容性。

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-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:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
25 [报告]
发表于 2015-07-01 14:37 |只看该作者
本帖最后由 windoze 于 2015-07-02 11:21 编辑

回复 24# wwwsq

STL的通用性我觉得还好,至少里面的容器算法之类组件通用性还是很强的,也足够灵活。

功能覆盖范围太窄是个大问题,除了最基本的文件I/O和C++11里加进来的thread,其它所有的OS相关功能统统没有,14在这方面没做什么,看17有什么新变化吧。
兼容性要从几个方面看,一方面STL在源代码级别的向前兼容做的还是不错的,但另一方面C++在ABI这个层面的兼容性就是渣,别说换个OS,就是同一个编译器换个新版本有时候都会出问题。目前看来C++标准委员会好像也没打算在这方面做什么,估计是搞不定各大厂商……

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
26 [报告]
发表于 2015-07-05 18:46 |只看该作者
本帖最后由 yulihua49 于 2015-07-05 18:47 编辑
windoze 发表于 2015-07-01 14:37
回复 24# wwwsq

STL的通用性我觉得还好,至少里面的容器算法之类组件通用性还是很强的,也足够灵活。

STL在编译期的泛型还可以,运行期泛型就无能为力了。
我还是不得不造轮子解救运行期泛型的问题。

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-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:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
27 [报告]
发表于 2015-07-05 19:28 |只看该作者
回复 26# yulihua49

运行期泛型?要么就用虚函数,要么用variant之类的type switch技术,和STL混用应该没什么问题。

论坛徽章:
19
处女座
日期:2014-07-18 14:50:5415-16赛季CBA联赛之北京
日期:2019-09-16 15:39:1415-16赛季CBA联赛之上海
日期:2019-09-15 15:29:0415-16赛季CBA联赛之山西
日期:2017-03-09 10:58:232017金鸡报晓
日期:2017-02-08 10:33:212017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之深圳
日期:2016-12-15 17:55:53C
日期:2016-10-25 16:00:1515-16赛季CBA联赛之新疆
日期:2016-07-21 14:02:0415-16赛季CBA联赛之江苏
日期:2016-06-30 12:15:04shanzhi
日期:2016-06-17 17:59:31平安夜徽章
日期:2015-12-26 00:06:30
28 [报告]
发表于 2015-07-05 21:00 |只看该作者
回复 26# yulihua49

可以借鉴COM的实现机制,缺点是COM实现不太好理解。
   

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
29 [报告]
发表于 2015-07-06 11:22 |只看该作者
本帖最后由 yulihua49 于 2015-07-06 11:50 编辑
shenlanyouyu 发表于 2015-07-05 21:00
回复 26# yulihua49

可以借鉴COM的实现机制,缺点是COM实现不太好理解。

COM不懂。
C++支持反射就可以了,应该一切由可反射的基类派生出来。向JAVA那样。
自制可反射基类是个苦逼差事。
解决运行时处理未知对象的内部数据。

就可以写出这样的工具:

int RDB_insert(DB_handle *dbh,Object obj,String columns);
功能:把对象插入关系数据库。
参数:dbh:数据库句柄。
        obj:任意对象。实参的对象名代表表名。
        columns:列名列表,将obj中相应的成员插入数据库。可以为空,表示按数据库字典,把同名表的同名列插入数据库。
返回值:>=0:插入的行数,<0,出错。

这就是ORM,Object Relational Mapping。它开辟了一个广阔的新天地,比STL有用的多得多。
有谁能提供一个C++的ORM框架呢?

论坛徽章:
1
2015亚冠之卡尔希纳萨夫
日期:2015-07-14 12:20:38
30 [报告]
发表于 2015-07-06 12:45 |只看该作者
能用c就用c,万不得已考虑c++
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP