Веб-версияОткрыть в Telegram

ПостПочему std::move сам ничего не перемещает?

21 сентября 2026
C
C/C++ Ready | Программирование
Фотография
нажмите — покажем
Почему std::move сам ничего не перемещает? Кажется, что вызов уже перенёс данные из одного объекта в другой. На деле std::move только сообщает компилятору, что объект можно рассматривать как временный. Само перемещение происходит, когда другой код выбирает move-конструктор или move-присваивание. std::string source = "report"; std::string target = std::move(source); Здесь строка target забирает ресурсы source. После этого source остаётся валидной, но её содержимое не определено контрактом и часто оказывается пустым. Поэтому нельзя писать логику, которая рассчитывает на конкретное значение после перемещения. send(std::move(message)); // message больше не используем как прежнее значение У std::move есть ещё одна ловушка. Перемещение из const-объекта обычно превращается в копирование, потому что move-конструктор не может менять источник. const std::string name = "ready"; auto copy = std::move(name); Такой код компилируется, но для std::string будет создана копия. Полезно применять std::move на последнем использовании объекта, когда прежнее значение действительно больше не нужно. 📣 C++ Ready | #совет
10 · 2.7K ·

Рядом в ленте

CC/C++ Ready | ПрограммированиеПочему setprecision не всегда означает количество знаков после точки? В C++ для форматирования дробных чисел часто используют std::setprecision. На первый взгляCC/C++ Ready | Программирование👨‍💻 CppCourse — курс по C++ и объектно-ориентированному программированию! Обучение идёт от работы с памятью, классов и наследования до шаблонов, STL, RAII, умны
это сообщение
CC/C++ Ready | ПрограммированиеБольшой разбор C++ механик! Автор собрал масштабный материал по приёмам, которые встречаются в современном и легаси C++ коде. Внутри есть RAII, Scope Guard, умнCC/C++ Ready | ПрограммированиеПочему std::move иногда вообще ничего не двигает? std::move не перемещает объект сам по себе. Он только превращает выражение в rvalue-ссылку, чтобы компилятор м
CC/C++ Ready | ПрограммированиеC/C++ Ready | Программирование@cpp_ready · канал · Технологии
15 602подписчиков2 235средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем