Vin*_*ent 9 c++ stl language-lawyer c++11
我想知道,为什么,在C++中,返回类型std::reverse_iterator::operator[]未指定.不应该std::reverse_iterator::reference吗?
这实际上是一种多余的放松; 从LWG 448和LWG 299(N3066)开始,它们包含在C++ 11中,迭代器的返回类型operator[]应该可以转换为reference.不幸的是,在改变了对返回类型的要求的问题之前解决了引入这种不足规范(386)的原始LWG问题operator[].
由于迭代器的返回类型operator[]现在被强制转换为reference,所以返回类型reverse_iterator::operator[]显然只是reference- 而且在libc ++和libstdc ++中都是如此.