es
Feedback
Библиотека C/C++ разработчика | cpp, boost, qt

Библиотека C/C++ разработчика | cpp, boost, qt

Ir al canal en Telegram

Все самое полезное для плюсовика и сишника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/d6cd2932 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

Mostrar más
2025 año en númerossnowflakes fon
card fon
19 539
Suscriptores
-824 horas
-447 días
-17630 días
Archivo de publicaciones
Photo unavailableShow in Telegram
Mostrar todo...
😁 9👾 8 2👍 1🥱 1
🍴 Assert vs If: когда проверки только вредят Часто в коде встречаются избыточные проверки, которые защищают от "невозможных" ситуаций:
void process(Config* config) {
    if (config == nullptr) {  // хотя config всегда валиден!
        log_error("Config is null");
        return;
    }
    // ...
}
❗️Проблема: такие if загромождают код, снижают производительность и создают иллюзию безопасности. ✅ Решение: использовать assert для проверки инвариантов — условий, которые всегда должны выполняться в корректной программе:
void process(Config* config) {
    assert(config != nullptr && "Config cannot be null");
    // ...
}
💡 Почему это лучше: • В релизе (NDEBUG) код assert полностью удаляется — нет накладных расходов • В горячих циклах это может означать миллионы сэкономленных проверок • Меньше размер исполняемого файла • assert явно документирует предусловия функции • Баг обнаруживается сразу в Debug, а не прячется за логами 👉 Статья Библиотека C/C++ разработчика #буст
Mostrar todo...
👍 12🤔 3 1🥱 1👾 1
🐸 Подборка вакансий для C++-разработчиков за неделю C developer — Удалёнка Middle+ / Senior C++ developer — Удалёнка Senior разработчик C++ в команду Core — Удалёнка Middle Разработчик на C/C++ под Linux — от 250 000 и до 300 000 ₽ Удалёнка Библиотека C/C++ разработчика
Mostrar todo...
👍 3
Какое преимущество даёт connect() для UDP сокета?Anonymous voting
  • Устанавливается надёжное соединение
  • Ядро кеширует маршрут, меньше overhead на каждый send()
  • Автоматическая ретрансмиссия потерянных пакетов
  • Невозможно, connect() работает только с TCP
  • Включается контроль порядка доставки
0 votes
😁 2
Repost from TgId: 1465826763
Photo unavailableShow in Telegram
Mostrar todo...
😁 9
Repost from TgId: 1940255915
Сколько TCP пакетов будет отправлено (без задержек на приёмной стороне)?Anonymous voting
  • 1 (все данные в одном пакете)
  • Около 10-20 (группировка по таймеру)
  • 100 (каждый байт в отдельном пакете)
  • Зависит от MTU
  • Зависит от размера TCP window
0 votes
😁 2
Repost from TgId: 1940255915
Photo unavailableShow in Telegram
Photo unavailableShow in Telegram
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++. 🍖 Интересное: Красивое резюме = провал — статья о том почему могут игнорировать пезюме, даже если оно хорошее • «Я хочу 500 000 рублей» и еще 8 способов договориться о зарплате — полезные рекомендации о том как просить зарплату повыше 😎 Полезное:std::partition — функция помогающая разделять данные по условию • Как сократить бинарный код и не потерять нужную функциональность — статья об оптимизации кода с помощью флагов сборки • Алокаторы — чек-лист о том какие есть аллокаторы в C++ 🔥 Интересные проекты:cpp-httplib — кроссплатформенная HTTP/HTTPS-библиотека C++11, содержащая только заголовочные файлы • Perfetto — набор SDK, демонов и инструментов с открытым исходным кодом, которые помогают реализовывать трассировку и профилирование Библиотека C/C++ разработчика #свежак
Mostrar todo...
4👍 1
Repost from TgId: 1770516712
🍖 Какую тему будем разбирать на этой неделе?Anonymous voting
  • Сети
  • Алгоритмы с собеседований
  • STL
  • Оптимизация кода
  • Всё что угодно только не UB
0 votes
😁 3
00:51
Video unavailableShow in Telegram
Наконец-то неделя закончилась, можно расслабиться и послушать шансончика😎 Библиотека C/C++ разработчика #развлекалово
Mostrar todo...
#развлекалово мемы.mp412.98 MB
😁 13👾 3 1
Photo unavailableShow in Telegram
🍖 «Я хочу 500 000 рублей» и еще 8 способов договориться о зарплате Представь: ты на собеседовании мечты, и тут HR спрашивает про зарплату. Что скажешь? Называешь число первым или ждешь? Завышаешь или играешь честно? Мы собрали 9 работающих стратегий с конкретными примерами фраз — от «Открытой» до «Я никуда не тороплюсь». Выбирай свою и перестань продавать себя дешево. 👉 Статья
Mostrar todo...
👍 3 1
Photo unavailableShow in Telegram
🎃 Хэллоуин в Proglib Academy: скидки, призы и... немного паники Сегодня 31 октября, и это не просто время тыкв и призраков, это ПОСЛЕДНИЙ ДЕНЬ, когда ты можешь выиграть макбук! → Купи любой курс со скидкой 40% 💸 → Начни обучение, чтобы пройти 2 недели к 15 ноября 🎓 → Напиши куратору #розыгрыш ✍️ Всё! Теперь ты в игре. 👉 Сейчас или никогда!
Mostrar todo...
🌚 2😁 1
🍬 Чек-лист: Allocators — контроль над памятью STL позволяет полностью контролировать аллокацию памяти через allocators. ✏️ Зачем нужны: ✓ Pool allocators для объектов одного размера (быстрее malloc) ✓ Stack allocators для временных данных без обращения к куче ✓ Tracking allocators для профилирования утечек памяти ✓ Aligned allocators для SIMD-оптимизированных структур ✏️ Стандартные allocators: ✓ std::allocator — дефолтный, работает через new/delete ✓ std::pmr::monotonic_buffer_resource — аллокация из буфера ✓ std::pmr::unsynchronized_pool_resource для многократного переиспользования ✓ std::pmr::polymorphic_allocator для динамической смены стратегии ✏️ Создание кастомного: ✓ Реализуй allocate() и deallocate() ✓ Объяви value_type, size_type, difference_type ✓ Не забудь про rebind для типов внутри контейнера ✓ Сделай allocator stateless для оптимизаций 💡Как измерить результат: Сравни количество malloc-вызовов через profiler до и после внедрения кастомного allocator. Цель — уменьшить на 50%+. 🍪 Факт: В game dev кастомные allocators — стандарт. Они значительно ускоряют аллокацию по сравнению с malloc. Библиотека C/C++ разработчика #буст
Mostrar todo...
👍 4🔥 2
Photo unavailableShow in Telegram
🍖 Как сократить бинарный код и не потерять нужную функциональность В статье подробно показывают, как оптимизировать бинарный код C++-проекта, чтобы не потерять нужную функциональность, используя только сборочные флаги, правильную работу с шаблонами и альтернативы стандартным инструментам. 📕 Ключевые моменты статьи: • грамотное применение флагов компилятора и линковки для сокращения бинаря • замена std::visit и std::variant на более экономичные паттерны • уход от std::shared_ptr к unique_ptr ради уменьшения инстанциаций и поддержки чисто-сырого владения Основной фокус — практические сценарии уменьшения итогового бинарного файла: что реально помогает, а от чего лучше отказаться, если не хотите усложнять архитектуру, ломать исключения и убирать RTTI. 👉 Статья Библиотека C/C++ разработчика #буст
Mostrar todo...
👍 2
Photo unavailableShow in Telegram
🎁 Конкурс от Proglib Academy! Кстати, если кто-то ещё не в курсе — у нас тут раздают MacBook Pro 14. Да-да, не шутка, настоящий, железный, с M3 Pro Но! Чтобы успеть пройти 2 недели обучения к 15 ноября, курс нужно взять до конца октября — и сейчас на всё скидка 40%. Чтобы поучаствовать, нужно: 1️⃣ Покупаешь любой курс до конца октября; 2️⃣ Проходишь 2 недели обучения к 15 ноября; 3️⃣ Написать куратору в чат #розыгрыш. До 15 ноября, потом всё — поезд (и макбук) уйдёт. 👉 Участвовать в розыгрыше
Mostrar todo...
😁 3 1
Photo unavailableShow in Telegram
🧠 System Level Meetup: C++ 📅 22 ноября 2025 года 🕚 11:00 — 22:00 📍 Москва, 2-й Кожуховский пр., 29, корп. 6 (МЦК, станция «ЗИЛ») 🎟 Формат: онлайн и офлайн. Участие бесплатное, по предварительной регистрации. Приглашаем C++ разработчиков и системных инженеров на System Level Meetup от YADRO. Поговорим о том, что происходит под капотом языка: как стандартные возможности превращаются в реальные оптимизации, как внедрять новейшие фичи без боли и что мешает производительности в больших производительных системах. 🔍 Что обсудим: — оптимизации корутин на уровне компилятора: практика и нюансы; — внедрение C++20 Modules в существующий проект: сложности и результаты; — LRU Cache для высоконагруженных систем: проблемы конкурентного доступа; — архитектура и разработка чекеров в clang-tidy; — строки в C++: string_view, constinit и нюансы нуль-терминации; — круглый стол: «AI-ассистенты в разработке на C++ — панацея или опасный костыль?». 🗣 Спикеры: Константин Невидин (Синтакор), Тимур Аммаев (YADRO), Илья Клементьев (YADRO), Никита Шубин (YADRO) и другие. 📌 Офлайн-гостей ждут демозона с оборудованием YADRO, технические активности, подарки и нетворкинг. Онлайн-участники смогут задавать вопросы в прямом эфире. 👉 Зарегистрируйтесь, чтобы получить ссылку на трансляцию или попасть на мероприятие офлайн.
Mostrar todo...
😁 2
🍿 std::partition — Разделение данных по условию 🔥 Проблема: Разработчикам часто нужно разделить коллекцию на две группы: элементы, удовлетворяющие условию, и остальные. Ручная реализация требует дополнительных контейнеров или сложной логики с несколькими проходами по данным. 💡Решение: Алгоритм std::partition переупорядочивает элементы так, что все удовлетворяющие предикату оказываются в начале. Возвращает итератор на границу разделения. ✏️ Пример кода:
#include <algorithm>
#include <vector>

std::vector<int> numbers = {1, 5, 2, 8, 3, 9, 4, 7, 6};

// Разделяем на четные и нечетные
auto boundary = std::partition(numbers.begin(), numbers.end(),
    [](int n) { 
        return n % 2 == 0; // Четные в начало
    }
);

// Теперь numbers = {6, 4, 2, 8, 3, 9, 5, 7, 1}
// boundary указывает на первый нечетный элемент

// Обрабатываем только четные числа
for (auto it = numbers.begin(); it != boundary; ++it) {
    *it *= 2; // Удваиваем четные
}
🍨 Преимущества: • Эффективность: работает in-place без дополнительной памяти O(1) • Скорость: линейная сложность O(n) за один проход • Стабильность: существует std::stable_partition для сохранения порядка • Универсальность: подходит для любых типов данных с произвольным предикатом Библиотека C/C++ разработчика #буст
Mostrar todo...
🔥 14👍 5 1
Photo unavailableShow in Telegram
Надоело ломать master случайным пушем? Есть решение. 😉 Разработчики на C/C++ оценят: SourceCraft не только поддерживает автодополнение и умную навигацию для плюсов, но и добавил фичи для безопасной разработки. Например, сканирование уязвимостей и секретов прямо при написании кода. 🛡️ А ещё у них есть «политики веток», которые защищают master от случайных коммитов — то, чего часто не хватает опенсорсным репозиториям. Интеграция с GitHub Actions и Yandex Cloud упрощает сборку и деплой C++-проектов. Похоже, можно немного выдохнуть за стабильность релизов. 👍
Mostrar todo...
2👍 2