Библиотека C/C++ разработчика | cpp, boost, qt
20.8K subscribers
1.6K photos
44 videos
16 files
3.77K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
⚡️ Фича дня: условный оператор с инициализацией

Часто перед условным оператором нужно объявить временную переменную, что загромождает область видимости и увеличивает вероятность ошибок.

Инициализация переменных прямо в условии if/switch (C++17) позволяет ограничить область видимости только блоком условия.

🔴 До:
auto it = map.find(key);
if (it != map.end()) {
// Используем it->second
}


🟢 После:
if (auto it = map.find(key); it != map.end()) {
// Используем it->second
}


Примеры использования:

- Поиск в контейнерах с проверкой результата
- Вызов функций с проверкой возвращаемого значения
- Инициализация мьютексов с последующей блокировкой

💡 Как думаете, улучшает ли это читаемость кода?

Библиотека C/C++ разработчика #буст
🔥 std::vector в Си?

💡 Автор статьи разработал свою реализацию аналога std::vector для языка Си после анализа существующих решений, которые не подходили по ряду причин.

Ключевые моменты статьи:

• обращение к элементам напрямую без лишних структур
• инкапсуляция метаданных вектора от пользователя
• минимальное использование макросов, только для удобства API

Основной фокус — элегантное инженерное решение: выделение памяти под структуру и данные одним блоком, с возвратом указателя на данные, которые идут сразу после структуры.

Особенно актуально для C-разработчиков, которые хотят получить удобство контейнеров C++ без смены языка программирования.
🚀 CLion теперь бесплатен для некоммерческих проектов!

Компания JetBrains объявила, что их мощная IDE CLion (для C и C++) теперь доступна бесплатно для некоммерческого использования!

Это отличная новость для:
🔹 Студентов и начинающих разработчиков
🔹 Авторов open-source проектов
🔹 Энтузиастов, пишущих код в качестве хобби

Раньше для работы с CLion требовалась подписка, но теперь JetBrains решил снизить порог входа в C/C++ разработку. В 2024 году они уже сделали бесплатными RustRover, Rider и WebStorm, а теперь очередь дошла и до CLion.

Библиотека C/C++ разработчика
Что выведет код с использованием std::filesystem?
Anonymous Quiz
21%
a/b/c.txt
69%
c.txt
2%
a/b
9%
Ошибка компиляции
🔥 Бьярн Страуструп о будущем C++, рисках ИИ и сложности замены языка

Создатель языка C++ Бьярн Страуструп поделился своим видением «C++ 21-го века» на конференции Qt World Summit в Мюнхене.

По его словам, современный C++ — это не просто набор новых функций, а более целостный, эффективный и безопасный язык.

Страуструп рекомендует:

• Использовать более прямые конструкции вместо традиционных переменных цикла
• Применять обобщенное программирование с автоматическим выводом типов
• Никогда не использовать «сырые указатели» как ресурсные дескрипторы
• Заменить устаревшие #include на современные import

Страуструп выразил обеспокоенность влиянием ИИ на программирование: «ИИ склоняет людей к устаревшим подходам, а программисты теряют способность выявлять проблемы».

Он также скептически относится к попыткам создать языки-заменители C++: «Легко разработать что-то лучше C++ для узкой области, но одна из сильных сторон C++ — работа в самых разных доменах».

Библиотека C/C++ разработчика
Что выведет код и какие могут быть проблемы

Пишите свои варианты в комментарии 👇

Библиотека C/C++ разработчика
📌 24 мая, System Level Meetup от YADRO, Санкт-Петербург и онлайн

Встретимся, чтобы поговорить об C++ в системной разработке: обсудим стандарты, подходы и реальные задачи, которые решаются на этом языке.

Участвовать можно офлайн или онлайн — регистрируйтесь, чтобы забронировать место или получить ссылку на стрим на одной из популярных платформ.

Классные бонусы для офлайн-участников: демозона с «железом» YADRO для ЦОД и телеком-операторов, технические интерактивы и подарки от компании.

В программе:

— Константин Владимиров и Илья Андреев расскажут о девиртуализации в C++, её основных проблемах и о том, как компиляторы эти проблемы решают.

— Леонид Меркин расскажет, как благодаря программированию на C++ в российской аэрокосмической индустрии растёт надёжность mission-critical-IT-решений.

— Илья Шишков прочитает доклад «C++ внутри PostgreSQL: удобство против традиций» и поделится тем, как смог вплести C++ в строго C-шную кодовую базу и каких результатов добился.

Вторая секция митапа — о Linux Kernel. Там обсудим эволюцию ядра Linux, использование Rust для написания драйверов устройств и другие темы. Можно выбрать одно направление или послушать доклады из разных секций.

📍Санкт-Петербург, Loft Hall, Арсенальная набережная, 1 или онлайн-трансляция.

Участие бесплатное, но нужна регистрация.

До встречи!
⌨️ Топ-вакансий для C++разработчиков за неделю

Embedded разработчик C/C++ — до 230 000 ₽ Гибрид (Екатеринбург)

Lead Algorithms and Models L2+ Layer Manager — от 300 000 ₽ Удалёнка (Москва, Санкт-Петербург, Нижний Новгород)

Реверс-инженер / разработчик C/C++ (Windows) — от 200 000 до 300 000 ₽ Офис (Москва)

Senior C++ Qt Developer — от 5 000 до 5 900 $ Удалёнка (Москва)

C++ Developer — 300 000 —‍ 400 000 ₽ Удалёнка

➡️ Еще больше топовых вакансий — в нашем канале C++ jobs
😎 Hint: Оптимизация std::vector

Знаете ли вы, что можно значительно ускорить работу с вектором, если заранее выделить память?

Метод reserve() позволяет избежать многократных перераспределений памяти:

std::vector v;
v.reserve(1000); // выделяем память сразу

for(int i = 0; i < 1000; ++i) {
v.push_back(i); // не будет перевыделений памяти
}


Это может в разы увеличить работу с большими векторами.

Библиотека C/C++ разработчика #буст