📌 Оптимизация кода в C++: Используем
Привет, друзья! Сегодня я расскажу об одной из самых частых ошибок, связанных с
❌ Ошибка: Бессмысленный
Что здесь не так? Возвращаемый
✅ Правильный вариант:
🏆 Где
Используйте
1️⃣ Не используйте
2️⃣ Используйте
3️⃣ После
➡️ @cpp_geek
std::move правильно! Привет, друзья! Сегодня я расскажу об одной из самых частых ошибок, связанных с
std::move. Многие знают, что std::move не перемещает объект, а лишь превращает его в rvalue. Но как его использовать правильно? Давайте разбираться! ❌ Ошибка: Бессмысленный
std::move
std::string getString() {
std::string str = "Hello, world!";
return std::move(str); // ❌ Неэффективно
}
Что здесь не так? Возвращаемый
std::string и так является временным объектом (NRVO — оптимизация возврата), и std::move мешает этой оптимизации! В результате компилятор не сможет выполнить перемещение, а вызовет копирование. ✅ Правильный вариант:
std::string getString() {
return "Hello, world!"; // ✅ NRVO оптимизация
}
🏆 Где
std::move полезен?Используйте
std::move, когда точно знаете, что объект больше не нужен и его можно переместить:
void processString(std::string str) { /* ... */ }
int main() {
std::string s = "Example";
processString(std::move(s)); // 🔥 Теперь перемещение!
}
1️⃣ Не используйте
std::move при возврате локальных объектов — дайте компилятору сделать свое дело! 2️⃣ Используйте
std::move, когда объект больше не нужен — это ускорит работу кода. 3️⃣ После
std::move не используйте переменную, кроме как для присвоения нового значения. ➡️ @cpp_geek
👍4❤3
Присоединяйтесь к встрече РГ21 С++ в Москве 15 декабря
Антон Полухин (Яндекс) выступит с новостями со встречи международного Комитета по стандартизации C++: расскажет о прогрессе в работе по C++26, о том, какие комментарии по стандарту от России были внесены, и о внезапных новинках.
После выступления Антон ответит на вопросы о том, как российские разработчики могут участвовать в развитии стандарта. Также в программе заложено время для открытого обсуждения доклада и неформального общения участников.
Успейте зарегистрироваться до 15 декабря.
Антон Полухин (Яндекс) выступит с новостями со встречи международного Комитета по стандартизации C++: расскажет о прогрессе в работе по C++26, о том, какие комментарии по стандарту от России были внесены, и о внезапных новинках.
После выступления Антон ответит на вопросы о том, как российские разработчики могут участвовать в развитии стандарта. Также в программе заложено время для открытого обсуждения доклада и неформального общения участников.
Успейте зарегистрироваться до 15 декабря.
🔥3
🚀Это отличный ресурс для программистов, работающих с C++. Можно найти подробную документацию по стандартной библиотеке, STL, различным версиям стандарта C++, а также примеры кода и объяснения по ключевым аспектам языка.
Справочник по C++
C++11, C++14, C++17, C++20, C++23, C++26 │ Поддержка компиляторами C++11, C++14, C++17, C++20, C++23, C++26
Справочник по языку C
C89, C95, C99, C11, C17, C23 │ Поддержка компиляторами C99, C23
https://ru.cppreference.com/w/
➡️ @cpp_geek
Справочник по C++
C++11, C++14, C++17, C++20, C++23, C++26 │ Поддержка компиляторами C++11, C++14, C++17, C++20, C++23, C++26
Справочник по языку C
C89, C95, C99, C11, C17, C23 │ Поддержка компиляторами C99, C23
https://ru.cppreference.com/w/
➡️ @cpp_geek
🔥6🗿5