Invalidação do iterador passado-a-fim em C ++ 11

O post mais popular em C ++Regras de invalidação do iterador afirma que não está claro se os iteradores passados ​​(isto é, aqueles retornados porend(), cend(), rend()ecrend()) são invalidados de acordo com as mesmas regras dos iteradores normais, que apontam para elementos no contêiner. Estas reivindicações, feitas para 2003 e 2011 C + +, adiar para um post discutindoTerminar as regras de invalidação do iterador, onde a resposta aceita sugere que a norma de 2003 é ambígua sobre o assunto. Esta conclusão é baseada em um comentário em 23.1 / 10 (no contexto deswap()) que parece implicar que quando a especificação não menciona explicitamente a invalidação de iteradores passados, eles podem ser invalidados.

Um comentário sobre a questão dessa postagem (por mike-seymour) sugere que C ++ 11 é inequívoca sobre este assunto, no caso dedeques. Minha pergunta é sobre todos os contêineres:

Em C ++ 11, há alguma operação de contêiner que possa invalidar um iterador passado e que esse comportamento seja ambíguo na especificação da linguagem?

Dito de forma diferente

Posso confiar na validade de um iterador passado depois de executar uma operação de contêiner que não diz que pode invalidar os iteradores passados?

questionAnswers(3)

yourAnswerToTheQuestion