Re[9]: Про перемещение (на примере кода)
От: _NN_  
Дата: 15.04.25 08:11
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Но еще есть вопрос наглядности — а это тоже важно. Чтобы получать нужную часть пакета — одной удобной строчкой с внятным названием — т.е. чтобы вся магия манипуляции с байтами — была не видна при взаимодействии.

Секунду, вам нужна часть вектора или весь ?
Невозможно забрать только часть без копирования.

S>Но в векторе, все-же, кой-чего нет — это простой возможности забрать владение на data у самого вектора.

Т.е. вы хотите, чтобы у вектора был интерфейс с возможностью отдать владение ?
Самым простым вариантом тогда будет использование unique_ptr<byte[]> , у него как раз есть release, который именно это и делает:

void f(char* p)
{
  delete[] p;
}

int main()
{
  std::unique_ptr<char[]> up = std::make_unique<char[]>(10);
  char* p = up.release(); // отдаём владение

  f(p);
}


Ну или свой вектор тогда можно сделать как вариант.
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.