0

入力イテレータにはconst間接参照演算子が必要ですか、それとも単なる非定数バージョンもその要件を満たしていますか?

4

1 に答える 1

1

いいえ。

たとえば、「入力イテレータ」。

これは通常、ストリームから読み取られます。参照を解除すると、値が読み取られ、基になるストリームが変更されます。参照解除演算子の使用は、++演算子を使用するまで再び有効になりません。

http://www.sgi.com/tech/stl/InputIterator.html

コメントに基づいて編集します。

あなたは缶を求めていますか?

確かに、C++では何でもできます。

それともあなたはすべきか尋ねていますか?

これで、どのビットがconstであるかによって異なります。

  • constメソッドで参照を解除する必要があるということですか?
  • または、(オブジェクトに)返される参照がconstであることを意味しますか?

個人的には、これら両方の質問に対する答えはノーだと思います。
これが入力イテレータ(上記のリンクで定義されている)の制約に違反していないことはかなり確信していると思います。

しかし、ユーザーが変更した場合、ストリームが参照しているものでも基になるオブジェクトを変更しないオブジェクトへの非コスト参照を返すことは賢明ではないと思います(これは驚き最小の原則に違反します)。

全体的に、あなたはあなたの質問を明確にする必要があると思います。
コンテキストをより詳細に説明し、天気に特定の署名が制約に違反していることを尋ねると、より良い答えを出すことができるかもしれません。現在、質問はあまりにも曖昧なので、私は答えを過度に一般的な方法でしか表現できません。

于 2012-11-17T03:37:29.693 に答える