Reading robocza Projekt N3337-1 Standard dla języka programowania C++, iteratory 24.2.5 przodu, strona 806.Co to jest gwarancja wieloprzebiegowa zgodnie ze standardem ISO C++?
Od projektu:
Dwa dereferenceable Iteratory a
i b
typu X
oferta gwarancji multi-przejścia jeżeli:
- a == b
implikuje ++a == ++b
i
- X
jest rodzajem wskaźnika lub wyrażenie (void)++X(a), *a
jest równoznaczne z wyrażeniem *a
.
[Uwaga: Wymóg a == b
implikuje ++a == ++b
(co nie jest prawdą dla iteratorów wejściowych i wyjściowych) i usuwanie ograniczeń dotyczących liczby zadań przez zmienny iterator (co dotyczy iteratorów wyjściowych) pozwala na korzystanie wieloprzebiegowych algorytmów jednokierunkowych z dalszymi iteratorami. -end note]
Czy ktoś mógłby ponownie zinterpretować to w łatwiejszy sposób? Rozumiem, że Forward iteratory są wieloprzebiegowe, ale nie rozumiem, w jaki sposób jest to realizowane zgodnie ze standardowymi wymaganiami C++.
+1 Bo uważam, że jest to odpowiednie dla tej społeczności, nawet jeśli nie rozwiązuje konkretnego problemu programistycznego i trudno jest naprawdę przeczytać C++ Standard. – LihO