【C++】traints使用

参考原文:细说C++traits
C++之父给traits的定义:

Think of a trait as a small object whose main purpose is to carry information used by another object or algorithm to determine “policy” or “implementation details”. - Bjarne Stroustrup

STL中,算法和容器是分开设计的,问题是算法如何从容器中萃取容器元素的,这就需要用到Traits class。

模板的特化

函数的模板可以有一个通用的定义,然后,针对某一特定类型,可以存在一个特化的版本;

模板的偏特化

模板特化时,可以只指定一部分而非所有模板参数,或者是参数的一部分而非所有特性,这就叫做偏特化。

typename关键字

在模板声明中,typenameclass的作用是一样的;
C++语言假定通过作用域运算符访问的名字不是类型。因此,如果我们想使用一个模板参数的类型成员,就必须显示告诉编译器该名字是一个类型。我们通过关键字typename实现这一点。

实现traits Classes

参考原文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值