Учитывая этот пример:
std::vector<int> v1 = { 1, 2, 3 };
const int* i = &v1[1];
std::vector<int> v2(std::move(v1));
std::cout << *i << std::endl;
Несмотря на то, что во многих реализациях STL это, вероятно, будет работать, я гарантирован стандартом, что переадресация не выполняется при перемещении std::vector
, а внутренняя поддержка буфера v2
такая же, как раньше от v1
? Я не смог найти эту информацию ни в Интернете, ни в самом стандарте.