为什么未指定std :: reverse_iterator :: operator []的返回类型?

Vin*_*ent 9 c++ stl language-lawyer c++11

我想知道,为什么,在C++中,返回类型std::reverse_iterator::operator[]未指定.不应该std::reverse_iterator::reference吗?

Col*_*mbo 6

这实际上是一种多余的放松; 从LWG 448LWG 299(N3066)开始,它们包含在C++ 11中,迭代器的返回类型operator[]应该可以转换为reference.不幸的是,在改变了对返回类型的要求的问题之前解决了引入这种不足规范(386)的原始LWG问题operator[].

由于迭代器的返回类型operator[]现在被强制转换为reference,所以返回类型reverse_iterator::operator[]显然只是reference- 而且在libc ++和libstdc ++中都是如此.

  • ......和MSVC一样.想提交LWG问题? (2认同)
  • @TC就可以了.:) (2认同)