📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
👾 Интересное:
• C++26 улучшает форматирование чисел — статья о предстоящем изменении в std::format
• Эволюция работы с типами в C++: от C++98 до C++23 — историческая справка по работе с типами
😎 Полезное:
• std::chrono — библеотека для работы cо временем
• Обработка ошибок с помощью AI — промпт, который поможет улучшить обработку ошибок
🖨Интересные проекты:
• conjure_enum — библиотека для удобной работы и с перечислениями
Библиотека C/C++ разработчика
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
👾 Интересное:
• C++26 улучшает форматирование чисел — статья о предстоящем изменении в std::format
• Эволюция работы с типами в C++: от C++98 до C++23 — историческая справка по работе с типами
😎 Полезное:
• std::chrono — библеотека для работы cо временем
• Обработка ошибок с помощью AI — промпт, который поможет улучшить обработку ошибок
🖨Интересные проекты:
• conjure_enum — библиотека для удобной работы и с перечислениями
Библиотека C/C++ разработчика
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что выведет программа?
Anonymous Quiz
7%
foobar
11%
barfoo
5%
Неопределенное поведение
63%
foo
15%
Нескомпилируется
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что гарантированно выведет программа в C++17?
Anonymous Quiz
9%
1234
5%
13444
51%
14
20%
1344
16%
Зависит от оптимизаций компилятора
🏖️ Подборка вакансий для C++-разработчиков за неделю
Software Engineer (Humanoid Robots) — 190 000 ₽ Удалёнка
Senior Linux Distro Master — от 5 000 и до 5 500 $ Удалёнка
C++ Разработчик — от 180 000 и до 250 000 ₽ Удалёнка
C++ Developer Middle — 200 000₽ Удалёнка
Разработчик C/C++ (SDN dataplane, DPDK/DOCA API) — от 250 000 и до 400 000 ₽ Удалёнка
Разработчик C++ — от 250 000 и до 400 000 ₽ Удалёнка
Библиотека C/C++ разработчика
Software Engineer (Humanoid Robots) — 190 000 ₽ Удалёнка
Senior Linux Distro Master — от 5 000 и до 5 500 $ Удалёнка
C++ Разработчик — от 180 000 и до 250 000 ₽ Удалёнка
C++ Developer Middle — 200 000₽ Удалёнка
Разработчик C/C++ (SDN dataplane, DPDK/DOCA API) — от 250 000 и до 400 000 ₽ Удалёнка
Разработчик C++ — от 250 000 и до 400 000 ₽ Удалёнка
Библиотека C/C++ разработчика
🙏3👍1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
😁27❤1👍1👏1
Последний шанс залутать курсы Proglib Academy с выгодой 40% и пожизненным доступом.
До 1 августа действует скидка на курсы по математике для Data Science, алгоритмам и структурам данных, обновлённому Python, frontend-разработке с нуля, основам IT для непрограммистов, базовым моделям ML, а также архитектурам и шаблонам проектирования.
Выбираем и забираем 👈
P.S. Акция не распространяется на курсы «AI-агенты для DS-специалистов» и «ML для старта в Data Science».
До 1 августа действует скидка на курсы по математике для Data Science, алгоритмам и структурам данных, обновлённому Python, frontend-разработке с нуля, основам IT для непрограммистов, базовым моделям ML, а также архитектурам и шаблонам проектирования.
Выбираем и забираем 👈
P.S. Акция не распространяется на курсы «AI-агенты для DS-специалистов» и «ML для старта в Data Science».
🥱2❤1😁1
Перегрузка
operator= -
одна из самых коварных тем в C++. Часто приводит к багам.class MyString {
private:
char* data;
size_t length;
public:
// Правильный operator=
MyString& operator=(const MyString& other) {
if (this == &other) return *this; // самоприсваивание
// Создаём временную копию
char* temp = new char[other.length + 1];
strcpy(temp, other.data);
// Освобождаем старые данные
delete[] data;
// Присваиваем новые
data = temp;
length = other.length;
return *this;
}
// Лучше через copy-and-swap
MyString& operator=(MyString other) { // копия по значению
swap(*this, other);
return *this;
}
};
Без проверки самоприсваивания можем удалить данные, которые копируем.
Copy-and-swap никогда не подведёт.
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🥰1
✅ Чек-лист: Оптимизация времени компиляции
Долгая компиляция убивает продуктивность. Ускорьте сборку вашего C++ проекта.
🎯 Структура проекта
✓ Используйте forward declarations вместо
✓ Минимизируйте зависимости в header файлах
✓ Применяйте
✓ Разбивайте большие файлы на модули
🎯 Современные возможности
✓ Переходите на C++20 modules постепенно
✓ Используйте precompiled headers для стабильных зависимостей
✓ Настройте distributed compilation (distcc, Incredibuild)
🎯 Инструменты и настройки
✓ Включите параллельную компиляцию (-j флаг)
✓ Используйте ccache для кеширования результатов
✓ Профилируйте время компиляции с -ftime-trace (Clang)
✓ Настройте incremental linking
Как измерить результат: Замеряйте время полной и инкрементальной сборки регулярно.
Библиотека C/C++ разработчика #буст
Долгая компиляция убивает продуктивность. Ускорьте сборку вашего C++ проекта.
🎯 Структура проекта
✓ Используйте forward declarations вместо
#include
где возможно✓ Минимизируйте зависимости в header файлах
✓ Применяйте
Pimpl idiom
для скрытия деталей имплементации✓ Разбивайте большие файлы на модули
🎯 Современные возможности
✓ Переходите на C++20 modules постепенно
✓ Используйте precompiled headers для стабильных зависимостей
✓ Настройте distributed compilation (distcc, Incredibuild)
🎯 Инструменты и настройки
✓ Включите параллельную компиляцию (-j флаг)
✓ Используйте ccache для кеширования результатов
✓ Профилируйте время компиляции с -ftime-trace (Clang)
✓ Настройте incremental linking
Как измерить результат: Замеряйте время полной и инкрементальной сборки регулярно.
Библиотека C/C++ разработчика #буст
❤6🔥4
🚀 C++17: structured bindings
Structured bindings в C++17 — это не просто красивый синтаксис, это читаемость кода на новом уровне!
Код стал намного читаемее. Особенно полезно при работе с контейнерами пар и функциями, возвращающими несколько значений.
🧠 Используете ли вы structured bindings? В каких случаях они наиболее полезны?
Библиотека C/C++ разработчика #междусобойчик
Structured bindings в C++17 — это не просто красивый синтаксис, это читаемость кода на новом уровне!
// Старый способ (до C++17)
std::map<std::string, int> counts;
for (auto it = counts.begin(); it != counts.end(); ++it) {
std::cout << it->first << ": " << it->second << std::endl;
}
// C++17 structured bindings
for (const auto& [key, value] : counts) {
std::cout << key << ": " << value << std::endl;
}
// Работает с парами, tuple, массивами
auto [x, y, z] = std::make_tuple(1, 2.5f, "hello");
auto [min, max] = std::minmax({5, 2, 8, 1, 9});
Код стал намного читаемее. Особенно полезно при работе с контейнерами пар и функциями, возвращающими несколько значений.
🧠 Используете ли вы structured bindings? В каких случаях они наиболее полезны?
Библиотека C/C++ разработчика #междусобойчик
👍9🔥7
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
Какая особенность у lambda-выражений в C++11?
Anonymous Quiz
9%
Они всегда имеют тип void
6%
Они не могут захватывать переменные
32%
Каждое lambda имеет уникальный тип
7%
Они работают только с auto
46%
Они не могут быть рекурсивными
❤1
👾 Ржавеющие плюсы: как внедрять современные проверки С++
💡Разработчик из Яндекс.Такси поделился опытом масштабного внедрения инструментов безопасности C++ — от статических анализаторов до санитайзеров.
❗️ Ключевые моменты доклада:
• внедрение CPP Hardening, Clang Lifetime Annotation и санитайзеров заняло 4 месяца
• из 40 тысяч падений тестов 20 тысяч были вызваны одной ошибкой
• санитайзеры нашли несколько сотен реальных багов в промышленной кодовой базе
Основной фокус — пятиэтапный процесс внедрения: тестирование проверок, анализ ошибок, постепенная починка багов, координация между командами и определение момента завершения работ.
Особенно актуально для компаний с большими legacy кодовыми базами, где безопасность кода критична для стабильности сервисов.
Вы узнаете, что простое включение проверок без продуманной стратегии может парализовать разработку, но правильный подход позволяет за месяц сократить количество критических ошибок с 17 тысяч до 39.
👉 Видео
Библиотека C/C++ разработчика #буст
💡Разработчик из Яндекс.Такси поделился опытом масштабного внедрения инструментов безопасности C++ — от статических анализаторов до санитайзеров.
❗️ Ключевые моменты доклада:
• внедрение CPP Hardening, Clang Lifetime Annotation и санитайзеров заняло 4 месяца
• из 40 тысяч падений тестов 20 тысяч были вызваны одной ошибкой
• санитайзеры нашли несколько сотен реальных багов в промышленной кодовой базе
Основной фокус — пятиэтапный процесс внедрения: тестирование проверок, анализ ошибок, постепенная починка багов, координация между командами и определение момента завершения работ.
Особенно актуально для компаний с большими legacy кодовыми базами, где безопасность кода критична для стабильности сервисов.
Вы узнаете, что простое включение проверок без продуманной стратегии может парализовать разработку, но правильный подход позволяет за месяц сократить количество критических ошибок с 17 тысяч до 39.
👉 Видео
Библиотека C/C++ разработчика #буст
❤3
😈 Полезный ли навык вайб-кодинга для реальных проектов
97% программистов уже пробовали ИИ для написания кода. Но где грань
между продуктивной помощью и потерей контроля над продуктом? Упрощает ли
вайб-кодинг жизнь джунам или затрудняет их развитие? И главное — как к
такому подходу относятся айтишники и их работодатели?
В этой статье постараемся разобраться, что такое вайб-кодинг на
самом деле, в чем его плюсы и минусы, и почему вокруг него сейчас
столько разговоров.
👉 Статья
Библиотека C/C++ разработчика
97% программистов уже пробовали ИИ для написания кода. Но где грань
между продуктивной помощью и потерей контроля над продуктом? Упрощает ли
вайб-кодинг жизнь джунам или затрудняет их развитие? И главное — как к
такому подходу относятся айтишники и их работодатели?
В этой статье постараемся разобраться, что такое вайб-кодинг на
самом деле, в чем его плюсы и минусы, и почему вокруг него сейчас
столько разговоров.
👉 Статья
Библиотека C/C++ разработчика