类std::iterator_traits
模板定义了 5 种嵌套类型:iterator_category
、value_type
、difference_type
和. 浏览libc++ 和 libstdc++ 头文件的来源,可以看到 , 和 的许多用途,但只有一种用于(inside ) 而没有用于.pointer
reference
<algorithm>
value_type
difference_type
iterator_category
reference
std::iter_swap
pointer
我的应用程序使用手动构建的代理迭代器/代理引用对。我想过渡到使用 Boost iterator_facade
,它可以让我将引用类型从默认配置T&
为任意类型,但对于T*
默认的指针类型则不然。pointer
我想避免被嵌套类型的一些深藏不露的使用所困扰。
注意:迭代器是没有嵌套成员的内置类型的代理,所以我不需要兼容operator->
(返回类型为pointer
)。
问题pointer
:标准库中的嵌套类型有哪些用例iterator_traits
?