免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 8731 | 回复: 30
打印 上一主题 下一主题

[C++] 用最简洁的语言概括C++ traits(高手请进) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-26 21:37 |只看该作者 |倒序浏览
RT,C++ traits 一直都是好多人学习的难点,有没有高手能用简洁的语言概括一下,方便后来人学习..

论坛徽章:
0
2 [报告]
发表于 2012-09-26 21:41 |只看该作者
Type traits? Traits class?

论坛徽章:
0
3 [报告]
发表于 2012-09-26 21:59 |只看该作者
C++ traits 什么东西?C++的新特性?高手讲解一下,、、、、

论坛徽章:
0
4 [报告]
发表于 2012-09-26 22:11 |只看该作者
幻の上帝 发表于 2012-09-26 21:41
Type traits? Traits class?


both of them..

论坛徽章:
0
5 [报告]
发表于 2012-09-27 05:22 |只看该作者
请楼下概括一下吧。
我只会推荐想折腾的去读下 boost::MPL 和 boost::TypeTraits 的源代码。

论坛徽章:
0
6 [报告]
发表于 2012-09-27 09:24 |只看该作者
这种冷门,折腾它的人不是很多

论坛徽章:
0
7 [报告]
发表于 2012-09-27 09:51 |只看该作者
回复 4# solidmango

Traits class说白了就是把编译时关于某些类型和常量的能确定的状态封装在类模版里面。这些类型或常量被当作模版参数。按需要可以根据模版参数的不同进行特化。类模版声明编译期确定的public成员(如typedef)来表示结果。例如std::char_traits,再如type traits。
Type traits一般就是指限制模版参数为类型参数、用于获取类型的编译期特征的traits class。
常用traits class的方法:
1.直接使用成员;
2.把traits class的实例当成模版类型参数。
不常用/不实用:
3.把traits class当成模版模版参数;
4.继承traits class的实例。

论坛徽章:
0
8 [报告]
发表于 2012-09-27 09:56 |只看该作者
fallening_cu 发表于 2012-09-27 05:22
请楼下概括一下吧。
我只会推荐想折腾的去读下 boost::MPL 和 boost::TypeTraits 的源代码。


看过相关的东西,但是感觉这东西概括起来很麻烦,估计是自己功力不够..

论坛徽章:
0
9 [报告]
发表于 2012-09-27 10:03 |只看该作者
幻の上帝 发表于 2012-09-27 09:51
回复 4# solidmango

Traits class说白了就是把编译时关于某些类型和常量的能确定的状态封装在类模版里面 ...


写的很不错,但是初学者看到这个估计还是感觉比较抽象,不容易理解..

论坛徽章:
0
10 [报告]
发表于 2012-09-27 10:04 |只看该作者
aychxm 发表于 2012-09-27 09:24
这种冷门,折腾它的人不是很多


不懂traits看STL源码会很吃力..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP