Библиотека C/C++ разработчика | cpp, boost, qt
رفتن به کانال در Telegram
Все самое полезное для плюсовика и сишника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/d6cd2932 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
نمایش بیشتر2025 سال در اعداد

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++ разработчика
#развлекалово | 1 276 |
| 3 | WANTED: C++ ЭКСПЕРТ
Обвиняется в прямом управлении памятью и знании тёмных углов стандарта. Если ты выжил в мире плюсов и готов учить этому других — мы тебя ищем.
Приметы:
— в совершенстве владеет C/C++ (понимает логику Go или Java);
— умеет писать производительный и безопасный код;
— обладает терпением и талантом наставника;
— хочет выйти на большую аудиторию Proglib.
Награда:
— вознаграждение за твой вклад в обучение;
— статус признанного эксперта в комьюнити;
— поддержка твоего личного бренда.
Сдаться добровольно
P.S. Знаешь «плюсовика», который знает слишком много? Сдай его нам. | 1 386 |
| 4 | 📕 Написал код на С++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
Весь этот год команда Академии запускала курсы для айтишников. А под Новый год мы запускаем новый курс по ИИ-агентам и ставим под ёлку самый свежий стек 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-агенты: когда точность архитектуры важнее магии промптов
Мы смотрим на ИИ как на инженерную задачу. Мы учим строить автономные системы с детерминированной логикой, контролем ресурсов и предсказуемым поведением.
Основные темы:
— управление состояниями в LangGraph для проектирования надёжных стейт-машин;
— работа с данными через RAG-системы на базе векторных хранилищ;
— автоматизация и мониторинг через связку n8n и LangSmith для полного аудита;
— безопасность системы с внедрением Guardrails для защиты от некорректных запросов.
Постройте масштабируемую AI-систему с инженерным подходом.
Записаться на курс | 1 574 |
| 8 | Перевод: Правительство США рассекретило 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 | 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-агентов» мы добавили факультатив "Научный взгляд" и углубились в техническую часть.
Для тех, кто любит хардкор:
— 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++.
😎 Интересное:
• Рализация своего ECS движка — разбор реализации hand-made ECS движка
• std::promise — move-only тип — описание проблемы с копированием std::promise
• 5 профессий в IT, которые появились благодаря ИИ — статья о том как ИИ создаёт профессии
• std::generator в C++23: как упростить код сопрограмм — доклад об использовании стандартного интерфейса, который превращает генерацию последовательностей в одну строку
🔹📍Навигация: Вакансии • Задачи • Собесы
Библиотека C/C++ разработчика
#свежак | 2 144 |
| 17 | 🎓 Твой опыт стоит дорого — стань экспертом Proglib Academy
Чувствуешь, что накопил достаточно знаний, чтобы делиться ими с другими?
Мы ищем сильных практиков, которые хотят попробовать себя в роли:
— преподавателей;
— авторов курсов;
— наставников.
Это возможность не только монетизировать экспертизу, но и прокачать личный бренд, структурировать собственные знания и вырастить новое поколение специалистов.
👉 Заполни короткую анкету | 2 176 |
| 18 | Вопрос: Можно ли получить 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++ разработчика
#развлекалово | 2 369 |
