[英]Must an input iterator have a const dereference operator?
输入迭代器是否必须具有const
解引用运算符,还是仅非const版本也可以满足其要求?
没有。
例如“输入迭代器”。
通常从流中读取。 取消引用它会读取一个值并更改基础流。 在使用++运算符之前,再次使用取消引用运算符无效。
http://www.sgi.com/tech/stl/InputIterator.html
你问可以吗?
当然,您可以在C ++中做任何事情。
还是您问应该?
现在取决于const是哪一位:
- 您是说要通过const方法取消引用吗?
- 或者,您是说(返回给对象的)引用是const?
我个人认为这两个问题的答案是否定的。
我认为可以肯定的是,这不会违反输入迭代器的约束(在上面的链接中定义)。
但是我认为将非成本引用返回给对象是不明智的,如果用户对其进行了更改,那么该对象也不会在流引用的对象中对基础对象进行更改(这违反了最不令人惊讶的原则)。
总的来说,我认为您需要澄清您的问题。
如果您更详细地解释上下文并询问天气,某个特定签名违反了限制,那么我也许可以给出更好的答案。 目前,这个问题过于笼统,因此我只能以过于笼统的方式表达答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.