Вступить в клуб →
средняявопросПамять и RAII

Обращение к строке после 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`

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела