c++ vector stdmove

c++ - ¿Es invariante la dirección frontal de std:: vector move?



stdmove (1)

Desde cppreference.com :

Después de que el contenedor mueva la construcción (sobrecarga (6)), las referencias, los punteros y los iteradores (aparte del iterador final) siguen siendo válidos, pero se refieren a los elementos que ahora están en * esto. La norma actual otorga esta garantía a través de la declaración general en §23.2.1 [container.requirements.general] / 12, y se está considerando una garantía más directa a través de LWG 2321 .

Los punteros a elementos no se invalidan, incluidos los punteros al primer elemento.

En el siguiente fragmento de código:

std::vector<double> a(100, 4.2); auto* a_ptr = a.data(); auto b = std::move(a); auto* b_ptr = b.data(); std::cout << ((b_ptr == a_ptr) ? "TRUE" : "FALSE") << ''/n'';

¿garantiza el estándar de C ++ que b_ptr siempre es igual a a_ptr después de std::move ? Ejecutar el código en el wandbox imprime TRUE .