traits的介绍

Posted 笨鸟居士的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了traits的介绍相关的知识,希望对你有一定的参考价值。

traits基本利用了上一篇文章的思想,通过局部特化,来返回针对特定类型的信息。

 

可以自己实现traits,约定俗成了,返回特性信息。

 

也可以利用iterator的traits信息。 iterator就是一个从不同容器内获取各自不同类型迭代器的经典例子。获得特定类型迭代器之后,就可以利用迭代器的traits信息了。

typedef typename std::vector<T>::value_type Elem;

typedef typename std::iterator_traits<typename std::vector<T>::iterator>::value_type Temp;

typedef typename std::iterator_traits<typename std::vector<T>::iterator>::pointer Ptr;

 

注意,第一个Elem貌似是const的,而第二个Temp是可以改变的。

 

以上是关于traits的介绍的主要内容,如果未能解决你的问题,请参考以下文章

Item 47:使用Traits类提供类型信息

Item 47:使用Traits类提供类型信息

PHP的Trait机制

PHP 中的关于 trait 的简单

scala中的trait

快学Scala 第十九课 (trait的abstract override使用)