Leggere Lavorare Progetto N3337-1, standard per il linguaggio di programmazione C++, iteratori 24.2.5 in avanti, pagina 806.Che cos'è la garanzia multi-pass per lo standard ISO C++?
Da progetto:
Due iteratori dereferenceable a
e b
di tipo X
offerta la garanzia multi-pass se:
- a == b
implica ++a == ++b
e
- X
è un tipo puntatore o l'espressione (void)++X(a), *a
è equivalente all'espressione *a
.
[Nota: Il requisito che a == b
implica ++a == ++b
(che non è vero per iteratori di ingresso e di uscita) e alla rimozione delle restrizioni sul numero delle assegnazioni attraverso un iteratore mutevole (che si applica a iteratori di uscita) permette l'uso di algoritmi one-directional multi-pass con iteratori forward. -end note]
Qualcuno potrebbe re-interpretarlo in termini più semplici? Comprendo che gli iteratori di inoltro sono multi-pass, ma non capisco come ciò sia realizzato secondo i requisiti standard C++.
+1 Perché lo trovo appropriato per questa comunità anche quando non affronta problemi di programmazione specifici e perché si potrebbe avere difficoltà a leggere C++ Standard in effetti. – LihO