STL-iterator_traits迭代器类型萃取解析
源码
在阅读STL源码的时候遇到了这样的一行代码:

通过ctags跳转到对应的定义区域:
下面还有两个特化版本:

根据英文释义,发现模板中需要传入的是一个迭代器类型,在上面找到源码:

可以发现,当我们调用C++中的 distance 操作时,通过类型萃取,最终迭代器的类型都会被转化为下面的五种类型:
_Category
_Tp
_distance
_Pointer
_Reference
这五个名称。
这样做的好处:在C++中有两种迭代器类型,一种是迭代器对象,一种是C语言形式的指针,通过迭代器萃取,我们可以统一迭代器的类型使用方式。
以上就是 iterator_traits 解析的详细内容,欢迎评论区提问或者指正。
:wq 拜~~

![用友U8 Cloud MeasureQueryFrameAction接口处SQL注入漏洞复现 [附POC]](https://i-blog.csdnimg.cn/direct/6e3fa09c67f3463798a50f9bc414db08.png)

















