Welche Operationen sind für ungültige Iteratoren definiert?

Als Follow-up zu eine Frage zum Vergleich ungültiger Iteratoren, Ich habe versucht, eine Definition der zulässigen Ausdrücke für ungültige Iteratoren im C ++ - Standard zu finden. Bei der Suche nach "ungültigem Iterator" wird nur eine einzige Referenz in §24.2.1.11 gefunden. Es heißt, dass ungültige Iteratoren "singulär" sein können, aber nur besagen, dass eine Dereferenzierung ein undefiniertes Verhalten sein kann. Es wird keine weitere Semantik angegeben.

Eine der ursprünglichen Antworten deutet darauf hin, dass es sich um ein implementierungsspezifisches Verhalten handelt, aber ich denke, dass dies nicht generell angenommen werden kann, da sich der oben genannte Absatz ausdrücklich auf UB bezieht.

Diese Antwort zeigt an, dass "jede andere Verwendung eines ungültigen Zeigerwerts ein implementierungsdefiniertes Verhalten aufweist". Da Iteratoren für Vektoren häufig als Zeiger implementiert werden, würde ich argumentieren, dass der Vergleich von zwei ungültigen Iteratoren zumindest ein durch die Implementierung definiertes Verhalten darstellt.

Kann jemand auf die relevanten Abschnitte im Standard verweisen, in denen die Semantik für ungültige Iteratoren definiert ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage