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

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

الذهاب إلى القناة على Telegram

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

إظهار المزيد
2025 عام في الأرقامsnowflakes fon
card fon
19 545
المشتركون
-1324 ساعات
-407 أيام
-17130 أيام
جذب المشتركين
ديسمبر '25
ديسمبر '25
+49
في 0 قنوات
نوفمبر '25
+80
في 0 قنوات
Get PRO
أكتوبر '25
+58
في 0 قنوات
Get PRO
سبتمبر '25
+72
في 0 قنوات
Get PRO
أغسطس '25
+90
في 0 قنوات
Get PRO
يوليو '25
+94
في 0 قنوات
Get PRO
يونيو '25
+134
في 0 قنوات
Get PRO
مايو '25
+129
في 0 قنوات
Get PRO
أبريل '25
+116
في 0 قنوات
Get PRO
مارس '25
+234
في 2 قنوات
Get PRO
فبراير '25
+184
في 2 قنوات
Get PRO
يناير '25
+136
في 2 قنوات
Get PRO
ديسمبر '24
+139
في 2 قنوات
Get PRO
نوفمبر '24
+230
في 2 قنوات
Get PRO
أكتوبر '24
+187
في 2 قنوات
Get PRO
سبتمبر '24
+168
في 2 قنوات
Get PRO
أغسطس '24
+79
في 2 قنوات
Get PRO
يوليو '24
+53
في 2 قنوات
Get PRO
يونيو '24
+105
في 2 قنوات
Get PRO
مايو '24
+363
في 2 قنوات
Get PRO
أبريل '24
+355
في 7 قنوات
Get PRO
مارس '24
+364
في 7 قنوات
Get PRO
فبراير '24
+324
في 7 قنوات
Get PRO
يناير '24
+381
في 6 قنوات
Get PRO
ديسمبر '23
+11 939
في 7 قنوات
Get PRO
نوفمبر '23
+406
في 5 قنوات
Get PRO
أكتوبر '23
+721
في 7 قنوات
Get PRO
سبتمبر '23
+1 678
في 5 قنوات
Get PRO
أغسطس '230
في 8 قنوات
Get PRO
يوليو '230
في 2 قنوات
Get PRO
يونيو '23
+10
في 0 قنوات
Get PRO
مايو '23
+592
في 2 قنوات
Get PRO
أبريل '23
+814
في 0 قنوات
Get PRO
مارس '23
+68
في 0 قنوات
Get PRO
فبراير '23
+1 035
في 0 قنوات
Get PRO
يناير '230
في 0 قنوات
Get PRO
ديسمبر '220
في 0 قنوات
Get PRO
نوفمبر '220
في 0 قنوات
Get PRO
أكتوبر '22
+69
في 0 قنوات
Get PRO
سبتمبر '22
+363
في 0 قنوات
Get PRO
أغسطس '22
+342
في 0 قنوات
Get PRO
يوليو '22
+424
في 0 قنوات
Get PRO
يونيو '22
+492
في 0 قنوات
Get PRO
مايو '22
+238
في 0 قنوات
Get PRO
أبريل '22
+216
في 0 قنوات
Get PRO
مارس '22
+427
في 0 قنوات
Get PRO
فبراير '22
+181
في 0 قنوات
Get PRO
يناير '22
+14 806
في 0 قنوات
التاريخ
نمو المشتركين
الإشارات
القنوات
26 ديسمبر0
25 ديسمبر+1
24 ديسمبر+2
23 ديسمبر+2
22 ديسمبر+4
21 ديسمبر+1
20 ديسمبر0
19 ديسمبر+2
18 ديسمبر+4
17 ديسمبر+3
16 ديسمبر+2
15 ديسمبر+1
14 ديسمبر+2
13 ديسمبر+1
12 ديسمبر+5
11 ديسمبر+1
10 ديسمبر0
09 ديسمبر+2
08 ديسمبر+4
07 ديسمبر+3
06 ديسمبر0
05 ديسمبر+1
04 ديسمبر+3
03 ديسمبر+2
02 ديسمبر0
01 ديسمبر+3
منشورات القناة
🐸 Подборка вакансий для C++-разработчиков за неделю C++/Qt/QML-разработчик под Android (Транспорт) — от 250 000 ₽ Удалёнка Senior C++ engineer («Разработка ядер рекламной платформы») C++ Developer (Real-Time Audio Processing) — от 288 000 и до 320 000₽ Удалёнка Senior С++ Backend Developer (Поиск) — от 350 000 ₽ Удалёнка Разработчик графических приложений Qt/С++ — от 150 000 и до 250 000 ₽ Удалёнка System С++ developer — Офис (Москва) Библиотека C/C++ разработчика

1 00620

2
📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #развлекалово
📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #развлекалово
1 276
3
WANTED: C++ ЭКСПЕРТ Обвиняется в прямом управлении памятью и знании тёмных углов стандарта. Если ты выжил в мире плюсов и гот
WANTED: C++ ЭКСПЕРТ Обвиняется в прямом управлении памятью и знании тёмных углов стандарта. Если ты выжил в мире плюсов и готов учить этому других — мы тебя ищем. Приметы: — в совершенстве владеет C/C++ (понимает логику Go или Java); — умеет писать производительный и безопасный код; — обладает терпением и талантом наставника; — хочет выйти на большую аудиторию Proglib. Награда: — вознаграждение за твой вклад в обучение; — статус признанного эксперта в комьюнити; — поддержка твоего личного бренда. Сдаться добровольно P.S. Знаешь «плюсовика», который знает слишком много? Сдай его нам.
1 386
4
📕 Написал код на С++23, а он запустился на Windows 95... Представь: пишешь код с модулями C++23 в Visual Studio 2026, жмёшь
📕 Написал код на С++23, а он запустился на Windows 95... Представь: пишешь код с модулями C++23 в Visual Studio 2026, жмёшь компиляцию... И получаешь exe для Windows 95. Подробный разбор нестандартного подхода к ретро-программированию с использованием всех благ современного C++. ❗Основные шаги: • компиляция только в 32-bit x86 с отключёнными исключениями и STL • использование линкера от Visual C++ 6.0 для финальной сборки • создание минимальной реализации std с базовыми контейнерами Фокус на практическом применении — портирование проектов LDL и движка Arcanum на C++23 с сохранением поддержки Windows 98. Актуально для разработчиков, которые создают новые игры, моды и улучшения для старых систем в рамках комьюнити вроде Old-Games.ru. Главное преимущество — один и тот же код работает и на современной системе (для отладки), и на ретро-железе (для финального запуска). 👉 Статья Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #свежак
1 474
5
🎅 Секретный Санта для айтишников от Proglib.academy Весь этот год команда Академии запускала курсы для айтишников. А под Нов
🎅 Секретный Санта для айтишников от Proglib.academy Весь этот год команда Академии запускала курсы для айтишников. А под Новый год мы запускаем новый курс по ИИ-агентам и ставим под ёлку самый свежий стек 2025 года и обучение проектированию автономных нейросетевых экосистем — от LLM и ReAct-циклов до мультиагентных систем, LangGraph, AutoGen и продакшн-практик. 🎁 Хотим дарить подарки и приглашаем вас поучаствовать в конкурсе: 1️⃣ Упомяните курс Академии у себя в блоге. 2️⃣ Пришлите скрин сюда. 3️⃣ Получите секретный промокод на 10 000 ₽ при оплате любого курса. Подходит всё — соцсети, блоги, Telegram-каналы от 300 подписчиков и более. 🎄 Акция действует до Нового года. Win-win, всё как мы любим!
1 481
6
🐥 Почему std::chrono::duration не хранит единицы измерения? duration<int, std::milli> не хранит информацию о миллисекундах. На самом деле это compile-time магия. ✅ Как это работает: duration — это просто обёртка над числом. Шаблонный параметр std::milli (он же std::ratio<1, 1000>) существует только на этапе компиляции. duration<int64_t, std::milli> ms(1000); // В памяти: просто int64_t со значением 1000 // Информации "это миллисекунды" в рантайме НЕТ 🍴 Механизм конверсии: Когда вы пишете duration_cast<seconds>(ms), компилятор вычисляет 1000 / 1000 = 1 на этапе компиляции через механизм std::ratio. Никаких делений в рантайме при конверсии целых периодов. Вывод: Zero-overhead абстракция. В release-сборке duration<int, milli> — это буквально int с type safety. Но осторожно: duration_cast может обрезать дробную часть при конверсии вниз. 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом
1 612
7
AI-агенты: когда точность архитектуры важнее магии промптов Мы смотрим на ИИ как на инженерную задачу. Мы учим строить автоно
AI-агенты: когда точность архитектуры важнее магии промптов Мы смотрим на ИИ как на инженерную задачу. Мы учим строить автономные системы с детерминированной логикой, контролем ресурсов и предсказуемым поведением. Основные темы: — управление состояниями в LangGraph для проектирования надёжных стейт-машин; — работа с данными через RAG-системы на базе векторных хранилищ; — автоматизация и мониторинг через связку n8n и LangSmith для полного аудита; — безопасность системы с внедрением Guardrails для защиты от некорректных запросов. Постройте масштабируемую AI-систему с инженерным подходом. Записаться на курс
1 574
8
Перевод: Правительство США рассекретило PoC (Proof of Concept) 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разра
Перевод: Правительство США рассекретило PoC (Proof of Concept) 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #развлекалово
1 675
9
⚡️ От SFINAE к Concepts: эволюция метапрограммирования Compile-time магия прошла долгий путь от криптографического SFINAE к читаемым concepts. Эра 1: Классический SFINAE (C++98) template<typename T> typename std::enable_if<std::is_integral<T>::value, T>::type increment(T value) { return value + 1; } // Что происходит? Кто знает... Эра 2: Type traits (C++11/14) template<typename T> std::enable_if_t<std::is_integral_v<T>, T> increment(T value) { return value + 1; } // Чуть лучше с _t и _v суффиксами Эра 3: if constexpr (C++17) template<typename T> T process(T value) { if constexpr (std::is_integral_v<T>) { return value + 1; } else if constexpr (std::is_floating_point_v<T>) { return value * 1.1; } else { return value; } } // Читается как обычный код! Эра 4: Concepts (C++20) template<std::integral T> T increment(T value) { return value + 1; } // Или auto increment(std::integral auto value) { return value + 1; } // Красота и понятность! 😏 А какой подход вам больше нравится? Напиши в комментариях! 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #константная_правильность
1 661
10
🤟 Путь к мечте продолжается Два года российские нейрохирурги отказывали мне в операции, запугивая последствиями. В итоге пое
🤟 Путь к мечте продолжается Два года российские нейрохирурги отказывали мне в операции, запугивая последствиями. В итоге поехал в Казахстан — сделали две паллидотомии, которые «нельзя было делать». Речь на месте, здоровье улучшается. Параллельно учу C++ и ищу работу. История о том, как не сдаваться, когда система говорит «нет». 👉 Продолжение... 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #буст
1 697
11
No text
No text
1 820
12
🔥 Почему throw не просто делает goto к catch-блоку? Возможно ты думал, что исключение — это прыжок в код обработчика. На самом деле между throw и catch происходит сложный процесс деструкции объектов. Stack Unwinding — это механизм раскрутки стека, который компилятор генерирует автоматически. Когда летит исключение, среда выполнения проходит назад по стеку вызовов и вызывает деструкторы всех локальных объектов в обратном порядке их создания. Компилятор создаёт специальные таблицы (exception tables в формате DWARF или SEH), которые содержат информацию о том, где какие объекты живут и какие деструкторы нужно вызвать. При броске исключения runtime читает эти таблицы и пошагово очищает стек. void func() { Resource r1; // деструктор будет вызван Resource r2; // и этот тоже throw Error(); } ❌ Если во время раскрутки деструктор сам бросит исключение, вызывается std::terminate(). Поэтому правило: деструкторы должны быть noexcept. ❗️Stack unwinding гарантирует безопасность ресурсов, но имеет накладные расходы: даже если исключение не бросается, таблицы занимают место в бинарнике. В embedded-системах часто отключают исключения именно поэтому. 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом
2 103
13
Что под капотом у агентов? Вы привыкли работать с памятью и потоками напрямую. AI-агенты — это новый уровень абстракции, но п
Что под капотом у агентов? Вы привыкли работать с памятью и потоками напрямую. AI-агенты — это новый уровень абстракции, но проблемы там те же: оптимизация, задержки, стоимость вычислений. В новой версии курса «Разработка AI-агентов» мы добавили факультатив "Научный взгляд" и углубились в техническую часть. Для тех, кто любит хардкор: — Optimization: RAG, векторный поиск, работа с контекстом. — System Design: Мультиагентные системы (AutoGen, LangGraph) как распределенные системы. — Infrastructure: Работа на реальном GPU-кластере (предоставляем доступ). Это знания, актуальные для 2026 года, когда AI будет встроен в каждое устройство. ⚡️ Акция 3 в 1: Берешь курс по агентам — получаешь два любых других бесплатно (например, Алгоритмы или Математику, чтобы понимать ML-базу). Upgrade your skills
2 178
14
👀 Почему std::async может заблокировать ваш поток? Многие думают, что std::async всегда создаёт новый поток. На самом деле это не так. По умолчанию std::async использует политику запуска std::launch::async | std::launch::deferred. Это означает, что реализация сама решает, выполнить задачу асинхронно или отложить до вызова get(). auto future = std::async(heavy_task); // Может НЕ запуститься прямо сейчас! auto result = future.get(); // Тут может начать выполняться 🍴 Под капотом: При std::launch::deferred задача сохраняется как callable объект и выполняется синхронно при первом обращении к future. Никакого нового потока. ✏️ Что происходит в памяти: Создаётся shared state, хранящий либо результат, либо исключение. Deferred-задача живёт в виде объекта функции до момента вызова. 🧋Вывод: Если вам нужна гарантия параллельности, явно указывайте std::launch::async. Иначе рискуете получить синхронное выполнение там, где ожидали асинхронное. auto future = std::async(std::launch::async, heavy_task); 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом
2 174
15
👀 Почему std::async может заблокировать ваш поток? Многие думают, что std::async всегда создаёт новый поток. На самом деле это не так. По умолчанию std::async использует политику запуска std::launch::async | std::launch::deferred. Это означает, что реализация сама решает, выполнить задачу асинхронно или отложить до вызова get(). auto future = std::async(heavy_task); // Может НЕ запуститься прямо сейчас! auto result = future.get(); // Тут может начать выполняться 🍴 Под капотом: При std::launch::deferred задача сохраняется как callable объект и выполняется синхронно при первом обращении к future. Никакого нового потока. ✏️ Что происходит в памяти: Создаётся shared state, хранящий либо результат, либо исключение. Deferred-задача живёт в виде объекта функции до момента вызова. 🧋Вывод: Если вам нужна гарантия параллельности, явно указывайте std::launch::async. Иначе рискуете получить синхронное выполнение там, где ожидали асинхронное. auto future = std::async(std::launch::async, heavy_task); 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом
2
16
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и инт
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++. 😎 Интересное: • Рализация своего ECS движка — разбор реализации hand-made ECS движка • std::promise — move-only тип — описание проблемы с копированием std::promise • 5 профессий в IT, которые появились благодаря ИИ — статья о том как ИИ создаёт профессии • std::generator в C++23: как упростить код сопрограмм — доклад об использовании стандартного интерфейса, который превращает генерацию последовательностей в одну строку 🔹📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #свежак
2 144
17
🎓 Твой опыт стоит дорого — стань экспертом Proglib Academy Чувствуешь, что накопил достаточно знаний, чтобы делиться ими с д
🎓 Твой опыт стоит дорого — стань экспертом Proglib Academy Чувствуешь, что накопил достаточно знаний, чтобы делиться ими с другими? Мы ищем сильных практиков, которые хотят попробовать себя в роли: — преподавателей; — авторов курсов; — наставников. Это возможность не только монетизировать экспертизу, но и прокачать личный бренд, структурировать собственные знания и вырастить новое поколение специалистов. 👉 Заполни короткую анкету
2 176
18
Вопрос: Можно ли получить stacktrace в constexpr контексте? Ответ: Нет! std::stacktrace::current() (C++23) не является conste
Вопрос: Можно ли получить stacktrace в constexpr контексте? Ответ: Нет! std::stacktrace::current() (C++23) не является constexpr функцией, так как stacktrace это runtime. Компилятор не имеет «call stack» во время компиляции в том же смысле.
2 112
19
🐸 Подборка вакансий для C++-разработчиков за неделю C++ Developer (General Components / Sensors) — от 350 000 ₽ Офис/Гибрид (Москва) C++ Developer (Real-Time Audio Processing) — от 288 000 и до 320 000 gross Backend-разработчик — от 200 000 ₽ Удалёнка C++ Team Lead (3D Картa) — от 250 000 ₽ Удалёнка C++ Developer (Middle/Senior) — от 2 000 и до 4 000$ Удалёнка Senior C++ Software Engineer (SaaS) — от 4 000 $ Удалёнка Библиотека C/C++ разработчика
2 328
20
📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #развлекалово
📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #развлекалово
2 369