出于某种原因,需要实现您自己的迭代器 ( Forward iterator) ,它说明如下:
输入可以作为右值取消引用
输出可以作为左值取消引用(仅适用于可变迭代器类型)
在同一个地方,据说它Forward Iterator应该包括 和 的Input iperator功能Output iterator。那么怎么Forward iterator会有两个实现operator*分别返回value_type和reference_type(rvalue和lvalue)呢?
现在的问题是:我是否正确理解我的问题的前一段是胡说八道,并且lvalue根据上下文rvalue定义的概念(UPD:变化),因此,实现Forward iterator将包括返回一个参考可以这样使用lvalue吗rvalue?
cplusplus.com 有足够多的错误。
打开https://en.cppreference.com/w/cpp/iterator和https://en.cppreference.com/w/cpp/named_req/InputIterator并看到:
前向迭代器不必是输出迭代器(但必须是输入迭代器)。
*a对于输入迭代器,它应该返回std::iterator_traits<..>::reference,但是这个reference可以由任何类型组成(你只需要能够将它转换为std::iterator_traits<..>::value_type.但是前向迭代器
reference必须匹配value_type &.