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

ПостПочему std::move иногда вообще ничего не двигает?

23 сентября 2026
C
C/C++ Ready | Программирование
Фотография
нажмите — покажем
Почему std::move иногда вообще ничего не двигает? std::move не перемещает объект сам по себе. Он только превращает выражение в rvalue-ссылку, чтобы компилятор мог выбрать move-конструктор или move-присваивание. Но если объект const, перемещение может неожиданно превратиться в обычное копирование: const std::string name = "ready"; std::string copy = std::move(name); Кажется, что здесь будет move. Но move-конструктор строки обычно принимает неконстантную rvalue-ссылку: std::string(std::string&& other); А из const объекта нельзя безопасно “забрать” внутреннее состояние, потому что это изменило бы объект. Поэтому компилятор выбирает копирование: const std::string name = "ready"; std::string result = std::move(name); // copy Нормальное перемещение работает с неконстантным объектом: std::string name = "ready"; std::string result = std::move(name); // move После такого name остаётся валидным, но его содержимое уже не стоит использовать как прежнее значение: std::cout << result << '\n'; std::move не гарантирует перемещение. Если объект const, чаще всего ты получишь копирование, просто записанное очень уверенным синтаксисом. 📣 C++ Ready | #совет
8 · 2.6K ·

Рядом в ленте

CC/C++ Ready | ПрограммированиеПочему std::move сам ничего не перемещает? Кажется, что вызов уже перенёс данные из одного объекта в другой. На деле std::move только сообщает компилятору, что CC/C++ Ready | ПрограммированиеБольшой разбор C++ механик! Автор собрал масштабный материал по приёмам, которые встречаются в современном и легаси C++ коде. Внутри есть RAII, Scope Guard, умн
это сообщение
CC/C++ Ready | ПрограммированиеШпаргалка по форматированию через библиотеку fmt! На картинке собраны плейсхолдеры, именованные аргументы, выравнивание, ширина поля, точность, форматы чисел, сCC/C++ Ready | ПрограммированиеСравниваем два списка файлов на C++! Допустим, есть ожидаемый список файлов релиза и список того, что реально попало в папку. Нужно быстро понять, какие файлы о
CC/C++ Ready | ПрограммированиеC/C++ Ready | Программирование@cpp_ready · канал · Технологии
15 601подписчиков2 266средний охват поста
Лента площадки Открыть в Telegram

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

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