Invalidación de iterador de último momento en C ++ 11

La publicación más popular en C ++Reglas de invalidación del iterador afirma que no está claro si los iteradores del final (es decir, los devueltos porend(), cend(), rend()ycrend()) se invalidan de acuerdo con las mismas reglas que los iteradores normales, que apuntan a elementos en el contenedor. Estas reclamaciones, hechas para C ++ 2003 y 2011, se remiten a un post de discusiónFinalizar reglas de invalidación de iterador, donde la respuesta aceptada sugiere que la norma de 2003 es ambigua al respecto. Esta conclusión se basa en un comentario en 23.1 / 10 (en el contexto deswap()) eso parece implicar que cuando la especificación no menciona explícitamente la invalidación de los iteradores del pasado, se pueden invalidar.

Un comentario sobre la pregunta de esa publicación (por mike-seymour) sugiere que C ++ 11 es inequívoco sobre este asunto, en el caso dedeques. Mi pregunta es sobre todos los contenedores:

En C ++ 11, ¿hay alguna operación de contenedor que pueda invalidar un iterador pasado-final y donde este comportamiento es ambiguo en la especificación del lenguaje?

Dicho de otra manera,

¿Puedo confiar en la validez de un iterador pasado-final después de realizar una operación de contenedor que no dice que puede invalidar los iteradores anteriores?

Respuestas a la pregunta(3)

Su respuesta a la pregunta