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是可以改变的。

 

posted @ 2017-03-01 11:34  blcblc  阅读(453)  评论(0编辑  收藏  举报