STL-iterator_traits迭代器类型萃取解析
源码
在阅读STL源码的时候遇到了这样的一行代码:
通过ctags跳转到对应的定义区域:
下面还有两个特化版本:
根据英文释义,发现模板中需要传入的是一个迭代器类型,在上面找到源码:
可以发现,当我们调用C++中的 distance
操作时,通过类型萃取,最终迭代器的类型都会被转化为下面的五种类型:
_Category
_Tp
_distance
_Pointer
_Reference
这五个名称。
这样做的好处:在C++中有两种迭代器类型,一种是迭代器对象,一种是C语言形式的指针,通过迭代器萃取,我们可以统一迭代器的类型使用方式。
以上就是 iterator_traits
解析的详细内容,欢迎评论区提问或者指正。
:wq 拜~~