A capacidade necessária deve ser preservada ao mover um std :: vector?

Considere o seguinte código:

std::vector vec;
vec.reserve(500);
size_t cap = vec.capacity();

std::vector newVec = std::move(vec);
assert(cap == newVec.capacity());

Em praticamente qualquer implementação que você encontrar, isso funcionará. Eu não me importo com o que implementações fazem. Eu quero saber o que o padrãoexige. Será que o movido paravector tem a mesma capacidade que o original? Ou será que a afirmação será disparada?

questionAnswers(2)

yourAnswerToTheQuestion