Часто при написании операторов присваивания или swap-функций приходится сохранять старое значение, заменяя его новым. Код получается многословным и подверженным ошибкам.
std::exchange
атомарно заменяет значение переменной и возвращает старое значение — всё в одной строке.T old_value = obj;
obj = new_value;
return old_value;
return std::exchange(obj, new_value);
Код становится более читаемым, безопасным и выразительным. Особенно полезно в RAII-классах и при работе с умными указателями.
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Forwarded from Proglib.academy | IT-курсы
🌐 Чек-лист: как искать работу
Чтобы не застрять в вечной отладке своей карьеры, держим в голове (и перед глазами) понятный план. Вот чек-лист на период поиска:
✅ Обновите резюме и профиль (да, и GitHub тоже)
Ваш профиль — это витрина. Убедитесь, что в нём отражены:
• актуальные технологии (например, .NET 6/7/8, Blazor, ASP.NET, Azure и т. д.).
• понятные результаты («реализовал систему логирования» , а не «писал код»).
• ссылки на GitHub с чистыми, осмысленными проектами — лишнее желательно скрыть или удалить.
✅ Сформулируйте ключевые навыки и корректные поисковые запросы.
Большинство рекрутеров используют автоматические фильтры. Включите в резюме чёткие названия технологий: Entity Framework Core, LINQ, RabbitMQ, Docker, CI/CD, Kubernetes.
✅ Следите за вакансиями регулярно, но без стресса
• Настройте уведомления на LinkedIn, Habr Career, hh.
• Подпишитесь на каналы с вакансиями, например, наш канал с вакансиями для шарпистов.
✅ Готовьтесь к собеседованиям заранее
• Освежите базовые концепции вроде async/await, Dependency Injection, SOLID, разберитесь в нюансах работы ASP.NET.
• Подумайте заранее, какие проекты вы можете описать как удачные кейсы.
• Поработайте над формулировками, которые показывают ваш вклад — рекрутеры ценят конкретику.
Сколько ищете работу? Пару дней или пару месяцев? Пишите в комментарии👇
Proglib Academy #буст
Чтобы не застрять в вечной отладке своей карьеры, держим в голове (и перед глазами) понятный план. Вот чек-лист на период поиска:
Ваш профиль — это витрина. Убедитесь, что в нём отражены:
• актуальные технологии (например, .NET 6/7/8, Blazor, ASP.NET, Azure и т. д.).
• понятные результаты («реализовал систему логирования» , а не «писал код»).
• ссылки на GitHub с чистыми, осмысленными проектами — лишнее желательно скрыть или удалить.
Большинство рекрутеров используют автоматические фильтры. Включите в резюме чёткие названия технологий: Entity Framework Core, LINQ, RabbitMQ, Docker, CI/CD, Kubernetes.
• Настройте уведомления на LinkedIn, Habr Career, hh.
• Подпишитесь на каналы с вакансиями, например, наш канал с вакансиями для шарпистов.
• Освежите базовые концепции вроде async/await, Dependency Injection, SOLID, разберитесь в нюансах работы ASP.NET.
• Подумайте заранее, какие проекты вы можете описать как удачные кейсы.
• Поработайте над формулировками, которые показывают ваш вклад — рекрутеры ценят конкретику.
Сколько ищете работу? Пару дней или пару месяцев? Пишите в комментарии👇
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🫣 Боитесь математики в ML?
Думаете, для этого нужно вспоминать университетские интегралы и решать сложные уравнения?
У нас хорошая новость: машинное обучение — это в первую очередь инженерная практика, а не математическая олимпиада. Здесь важнее понимать суть, а не выводить формулы.
Именно на таком подходе — через логику, интуицию и наглядные примеры — и построен наш курс «ML для старта в Data Science», где мы объясняем всё на пальцах, без боли и зубрёжки.
Регистрируйтесь, пока есть свободные места 😉
Думаете, для этого нужно вспоминать университетские интегралы и решать сложные уравнения?
У нас хорошая новость: машинное обучение — это в первую очередь инженерная практика, а не математическая олимпиада. Здесь важнее понимать суть, а не выводить формулы.
Именно на таком подходе — через логику, интуицию и наглядные примеры — и построен наш курс «ML для старта в Data Science», где мы объясняем всё на пальцах, без боли и зубрёжки.
Регистрируйтесь, пока есть свободные места 😉
❤1
Proglib Academy — это место, где вы превращаете теорию в практику. Здесь ваши знания становятся проектами для портфолио, а вы — более уверенным специалистом.
Выберите курс, который поможет сделать следующий шаг ⬇️
🚀 Для тех, кто начинает путь в IT:
— Основы IT для непрограммистов
— Программирование на Python (обновлённый)
— Frontend-разработчик с нуля: HTML, CSS, JavaScript
🧠 Для будущих и настоящих Data Scientist'ов:
— ML для старта в Data Science (начинается в сентябре)
— Базовые модели ML и приложения
— Математика для Data Science
— AI-агенты для DS-специалистов (скоро второй поток)
🛠️ Для опытных разработчиков, готовых к росту:
— Алгоритмы и структуры данных
— Архитектуры и шаблоны проектирования
Независимо от вашей цели, у нас есть курс, который поможет её достичь. Переходите в Proglib Academy, выбирайте свой путь и инвестируйте в навыки, которые всегда будут в цене!
Выберите курс, который поможет сделать следующий шаг ⬇️
🚀 Для тех, кто начинает путь в IT:
— Основы IT для непрограммистов
— Программирование на Python (обновлённый)
— Frontend-разработчик с нуля: HTML, CSS, JavaScript
🧠 Для будущих и настоящих Data Scientist'ов:
— ML для старта в Data Science (начинается в сентябре)
— Базовые модели ML и приложения
— Математика для Data Science
— AI-агенты для DS-специалистов (скоро второй поток)
🛠️ Для опытных разработчиков, готовых к росту:
— Алгоритмы и структуры данных
— Архитектуры и шаблоны проектирования
Независимо от вашей цели, у нас есть курс, который поможет её достичь. Переходите в Proglib Academy, выбирайте свой путь и инвестируйте в навыки, которые всегда будут в цене!
💬 Вопрос от подписчика: move семантика — когда она реально помогает?
Один из наших подписчиков поделился результатами профилирования:
🌚 Ожидания:
• Меньше копирований
• Faster передача объектов
• Оптимизация контейнеров
😱 Реальность:
• В 60% случаев компилятор и так делал оптимизации
• Move конструкторы не всегда noexcept
• Некоторые move операции дороже copy
Кто измерял реальный импакт от move семантики? Поделитесь находками в комментариях.
Библиотека C/C++ разработчика
Один из наших подписчиков поделился результатами профилирования:
Потратил неделю на анализ impact'а move семантики в нашем коде. Результаты неожиданные.
🌚 Ожидания:
• Меньше копирований
• Faster передача объектов
• Оптимизация контейнеров
😱 Реальность:
• В 60% случаев компилятор и так делал оптимизации
• Move конструкторы не всегда noexcept
• Некоторые move операции дороже copy
Кто измерял реальный импакт от move семантики? Поделитесь находками в комментариях.
Библиотека C/C++ разработчика
😁5🤔2❤1
🧨 Range views: детали реализации, неочевидное поведение и влияние на производительность
Современные диапазоны могут заменить 90% ваших циклов — но есть подводные камни.
Разработчик из Яндекса разобрал детали реализации
• Композируемость алгоритмов — строите цепочки операций через
• Ленивые вычисления — всё выполняется за один проход, экономя память и время
• Скрытое кэширование — почему константные объекты могут не компилироваться и как это обойти
• Проблемы с join и split — когда повторная итерация приводит к неопределённому поведению
• Оптимизация производительности — тесты показывают эквивалентность с ручным кодом
• Практические ловушки —
📹 Видео
Библиотека C/C++ разработчика #буст
Современные диапазоны могут заменить 90% ваших циклов — но есть подводные камни.
Разработчик из Яндекса разобрал детали реализации
ranges
, которые изменят ваш подход к обработке данных:• Композируемость алгоритмов — строите цепочки операций через
pipe operator
вместо вложенных циклов• Ленивые вычисления — всё выполняется за один проход, экономя память и время
• Скрытое кэширование — почему константные объекты могут не компилироваться и как это обойти
• Проблемы с join и split — когда повторная итерация приводит к неопределённому поведению
• Оптимизация производительности — тесты показывают эквивалентность с ручным кодом
• Практические ловушки —
double calls
, broken constness
и другие неочевидные эффекты📹 Видео
Библиотека C/C++ разработчика #буст