Обращение к строке после std::move
std::string payload = build_payload();
std::vector<std::string> queue;
queue.push_back(std::move(payload));
log("отправлено байт: " + std::to_string(payload.size()));
Что можно утверждать про строку payload в момент вызова log?
- Обращение к `payload` — неопределённое поведение: буфер строки уже освобождён при перемещении
- Объект жив и корректен, но его значение не определено: вызывать `size()` можно, полагаться на результат нельзя
- Значение сохранилось: `std::move` только разрешает перемещение, но копию всё равно делает `push_back`
- Компилятор не пропустит обращение к переменной после `std::move`
