【发布时间】:2016-01-11 23:14:04
【问题描述】:
我试图了解何时实际使用 iterator::value_type。
因为,迭代器的所有操作符,似乎只使用iterator::pointer 和iterator::reference。
问题:iterator::value_type 真的用于某事吗?
额外问题:一个迭代器会继承自
std::iterator<std::random_access_iterator_tag, int, std::ptrdiff_t, bool*, bool&>
提出一些语义问题?
编辑:要理解我问这个问题的原因,是因为我正在为 pointer 和 reference 是代理类的类型开发迭代器。
【问题讨论】:
-
关于 EDIT,在这种情况下,将
value_type作为单独的typedef肯定很有用,因为remove_reference_t<decltype(*begin)>不再属于基础值的类型,而是具有以下类型代理。
标签: c++ c++11 iterator semantics