fa
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 #WXSSA

نمایش بیشتر

📈 تحلیل کانال تلگرام Библиотека C/C++ разработчика | cpp, boost, qt

کانال Библиотека C/C++ разработчика | cpp, boost, qt (@cppproglib) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 23 204 مشترک است و جایگاه 5 865 را در دسته فناوری و برنامه‌ها و رتبه 28 975 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 23 204 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 04 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -10 788 و در ۲۴ ساعت گذشته برابر 7 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 6.99% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 4.12% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 1 622 بازدید دریافت می‌کند. در اولین روز معمولاً 957 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 9 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند c++, навигация, компилятор, удалёнка, developer تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Все самое полезное для плюсовика и сишника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/d6cd2932 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #WXSSA

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 05 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

23 204
مشترکین
+724 ساعت
-10 7467 روز
-10 78830 روز
آرشیو پست ها
🍴 Умные указатели в Qt: почему new никуда не делся Современный C++ давно говорит «забудь про new». Qt говорит «подожди». Ста
🍴 Умные указатели в Qt: почему new никуда не делся Современный C++ давно говорит «забудь про new». Qt говорит «подожди». Статья разбирает, почему иерархическая модель фреймворка и RAII плохо живут вместе. • QObject с родителем удаляется деструктором родителя. Если при этом он ещё и под unique_ptr — получишь double free: умный указатель не знает, что объект уже мёртв. • QWeakPointer как аналог слабой ссылки здесь не поможет — он работает только с QSharedPointer, который в Qt-иерархии использовать нельзя. Для этого есть QPointer<T>, который подписывается на destroyed() и обнуляется сам. • sender() возвращает QObject* — объект, которым уже кто-то владеет. Оборачивать результат в умный указатель — значит воевать с фреймворком. • В QML ситуация хуже: JS GC может удалить переданный из C++ объект без родителя, не предупредив. Краш случится через непредсказуемое время. Спасает только QQmlEngine::CppOwnership или явный родитель. • QScopedPointer имеет смысл перед std::unique_ptr в одном конкретном случае — QScopedPointerDeleteLater для объектов вроде QNetworkReply, которые нельзя удалять немедленно. В остальном std-аналоги легче и лучше интегрируются с внешними библиотеками. 💡 Решение предлагается в статье в виде правила: • есть родитель -> сырой указатель, • нет родителя -> QScopedPointer или std::unique_ptr • нужно следить за чужим объектом -> только QPointer • бизнес-логика без QObject -> чистый STL. ✏️ Статья 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #линкер_рекомендует

🇷🇺Разбираешься в радиочипах, оптике и связи? Забери до 2 000 000 рублей за свои инженерные навыки на турнире «Дронкон»🇷🇺
🇷🇺Разбираешься в радиочипах, оптике и связи? Забери до 2 000 000 рублей за свои инженерные навыки на турнире «Дронкон»🇷🇺 «Сталинские Соколы» открывают регистрацию на 3-й Всероссийский турнир «Дронкон», который пройдет с 8 по 14 мая. 2 направления для победы: - Инженерное дело: беспроводная связь, радиочипы и оптические системы + стратегия «Битва Дронов»; - Пилотирование: War Thunder, GeoGuessr и FPV-гонки + стратегия «Битва Дронов». Призовой фонд для победителей одной дисциплины: 🥇место – 2 000 000 рублей 🥈место – 1 500 000 рублей 🥉место – 1 000 000 рублей Награда за 4-8 места - 150 000 рублей Пройди заочный онлайн-этап и получи путевку на очный этап турнира в Республику Татарстан! Перелет, питание, проживание - за счет организаторов. 🇷🇺 Подать заявку и узнать подробности 🇷🇺

⚙️ Хотим сделать одну вещь — собрать нормальный список людей, за которыми реально следит C++ сообщество C++ — язык с историей
⚙️ Хотим сделать одну вещь — собрать нормальный список людей, за которыми реально следит C++ сообщество C++ — язык с историей. И у него есть живое сообщество людей, которые двигают его вперёд — через доклады, статьи, открытый код и просто посты в сети. ⁉️ Хотим узнать, кого читаете именно вы Не «обязательный список» — а реальный срез того, за кем следит наш канал. Может, откроем друг другу что-то новое. 📎 Формат простой: • Имя • Где (YouTube, блог, X, GitHub...) • Почему именно он/она 👇 Пишите, собирём в отдельный пост 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #междусобойчик

🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук,
🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные сервисы (в т.ч. для Сбера). Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список. 🛠 Стек и фреймворки: DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов). Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью. MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам. 📖 Документация, которую нужно знать: Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API. OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью. Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов. 🔬 Хардкорные статьи и препринты (на выходные): Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста. How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов. MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти. InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты. Екатерина Трофимова — один из ключевых экспертов нашего курса AgentOps. На своих лекциях она детально разбирает, как проектировать инструменты для агентов, как агент принимает решения о вызове инструментов и какие ограничения возникают в реальном проде 🎁 Акция в честь старта продаж! Прямо сейчас при покупке Инженерного трека вы получаете полный доступ к материалам курса «Разработка ИИ-агентов» в подарок. 👉 Забрать 2 курса по цене 1 и начать обучение

🩹 Задача на выходные: const-итерация по Range
#include <ranges>
#include <vector>

void process(const auto& view) {
    for (auto x : view) { (void)x; }
}

int main() {
    std::vector<int> data = { 1, 2, 3, 4, 5 };
    auto pred = [](int x) { 
        return x % 2 == 0; 
        };

    auto filtered = data | std::views::filter(pred);
    process(filtered); // ❌ не компилируется
}
Объясни механизм: почему begin() const невозможен в принципе, а не по недосмотру комитета. 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #междусобойчик

🛠 Бесплатные курсы от MIT Университеты дают алгоритмы, OS, компиляторы — но не учат пользоваться инструментами, с которыми р
🛠 Бесплатные курсы от MIT Университеты дают алгоритмы, OS, компиляторы — но не учат пользоваться инструментами, с которыми разработчик проводит большую часть рабочего времени. MIT решили это исправить. • Курс покрывает shell, профилирование, отладку, git и упаковку кода — всё то, что обычно осваивается методом тыка в первые годы работы. • В версии 2026 добавлен модуль по agentic coding: как встраивать AI-инструменты в реальный рабочий процесс, не теряя контроль над кодом. • Отдельный акцент на качестве кода — тема, которая в академической среде почти не появляется • Лекции доступны на YouTube, материалы открыты, есть переводы на 17 языков включая русский. 🍬 The Missing Semester of Your CS Education (eng) 🍬 Пропущенный семестр курса по компьютерным наукам (рус) ✏️ Что из этого списка вы осваивали самостоятельно, а не на работе или учёбе? 📍 Навигация: ВакансииЗадачиСобесы Библиотека питониста #буст

🍿 std::views::filter — ленивая фильтрация в C++20 Адаптеры std::views::* — главный инструментарий Ranges. Каждый из них создаёт новое «представление» существующих данных без копирования. Сегодня разберём views::filter. 🌸 Базовое использование
#include <ranges>
#include <vector>
namespace views = std::views;

std::vector<int> nums = {1, -2, 3, -4, 5, -6};

auto positives = nums | views::filter([](int x) { return x > 0; });
// Итерация даёт: 1, 3, 5
Ничего не копируется — positives это просто обёртка поверх nums, которая позволяет удобно обрабатывать его элементы. 🍪 Цепочка фильтров
auto is_even = [](int x) { return x % 2 == 0; };

auto result = nums
    | views::filter([](int x) { return x > 0; })  // 1, 3, 5
    | views::filter(is_even);                     // нет чётных → пусто
Фильтры можно комбинировать в произвольную цепочку. Вычисление происходит лениво — только в момент итерации. 👻 Композиция с views::transform Достаточно просто ограничить обработку только тех элементов, которые хотим обработать:
auto squares = nums
    | views::filter([](int x) { return x > 0; })
    | views::transform([](int x) { return x * x; });
// Итерация даёт: 1, 9, 25
🍙 Материализация в вектор View — это не контейнер. Чтобы получить std::vector необходимо явно дать указание, что мы хотим привести результат к вектору:
// C++23
auto vec = nums | views::filter(is_even) 
               | std::ranges::to<std::vector>();

// C++20
std::vector<int> vec(result.begin(), result.end());
🌱 Pipe-синтаксис vs явный тип Синтаксис в виде pipe удобе, но если необходимо (например, для шаблонов), то можно пользоваться диапазонами как типами/объетами. Обе записи идентичны:
auto v1 = nums | views::filter(is_even);
auto v2 = std::ranges::filter_view{nums, is_even};
❗️ Ловушка: dangling view
// UB — вектор уничтожен после точки с запятой
auto bad = std::vector{1, 2, 3} | views::filter(is_even);

// Правильно — храните источник данных отдельно
std::vector<int> data = {1, 2, 3};
auto ok = data | views::filter(is_even);
🐸 Продолжение следует... 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #константная_правильность

🌿 userver 3.0: крупное обновление open source C++ фреймворка от Яндекса userver — асинхронный фреймворк для микросервисов и highload-систем, который используется в production внутри Яндекса и доступен в open source. Вышла версия 3.0 — с большим количеством прикладных улучшений для backend-разработки. ✏️ Что добавили в релизе • Более 2500 изменений и доработок • Chaotic — генерация однотипного кода по схемам данных • userver easy — быстрый запуск микросервиса с возможностью дальнейшего масштабирования • Улучшения по потреблению RAM и CPU • Дополнительные инструменты диагностики и отказоустойчивости ⚡️ Почему релиз важный Во многих C++ backend-проектах основные затраты времени уходят не на бизнес-логику, а на инфраструктурную обвязку: HTTP, базы данных, логирование, асинхронность, observability, graceful shutdown, retries, metrics. Здесь это уже собрано в production-ready стек, который прошёл нагрузку в сервисах масштаба Яндекса. 🐸 Что особенно полезно Chaotic закрывает одну из самых затратных задач — поддержку boilerplate-кода вокруг DTO, схем и сериализации. А userver easy снижает порог запуска новых сервисов и ускоряет прототипирование без необходимости собирать каркас проекта с нуля. 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #cpp #backend #opensource

🌳 Деревья в алгоритмах — быстрый гайд по иерархическим структурам Деревья — одна из самых частых тем на собеседованиях и в р
🌳 Деревья в алгоритмах — быстрый гайд по иерархическим структурам Деревья — одна из самых частых тем на собеседованиях и в реальных системах. Если понять базу, закрывается огромный пласт задач. 👉 Что такое дерево: Это структура данных, где элементы связаны иерархически: есть корень → ветки → листья. Примеры из жизни: — файловая система — DOM в браузере — организационные структуры Базовые типы деревьев: — Бинарное дерево — у каждого узла максимум 2 потомка — Бинарное дерево поиска (BST) — слева меньше, справа больше — Сбалансированные деревья (AVL, Red-Black) — держат высоту под контролем — Trie — для строк и префиксов 📍 Навигация: ВакансииЗадачиСобесы Библиотека питониста #буст

🔩 Vtable изнутри: что компилятор прячет за virtual Автор статьи разбирает внутреннее устройство виртуальных таблиц согласно
🔩 Vtable изнутри: что компилятор прячет за virtual Автор статьи разбирает внутреннее устройство виртуальных таблиц согласно Itanium C++ ABI — тому самому стандарту, которому следуют GCC и Clang на большинстве платформ. ❗Ключевые моменты статьи: • почему vptr указывает не на начало vtable, а со смещением • как расположены записи в vtable при множественном и виртуальном наследовании • что такое construction vtable (VTT) и когда она используется Основной фокус — не просто «как работает virtual», а что происходит на уровне байтов и ассемблера, когда компилятор реализует динамическую диспетчеризацию. Если вы когда-либо видели в стектрейсе vtable for ClassName и не понимали, что это — самое время разобраться. 👉 Статья 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #линкер_рекомендует

🗓 В следующий вторник (28.04) в 19:00 встречаемся в онлайне. Тема:
Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены
В кружке Кирилл рассказал, какие именно подходы будем разбирать. 👉 Занять место на вебинаре

😎 Топ-вакансий для C++ разработчиков за неделю Senior Rendering engineer C++ в 3D Карту — от 350 000 и до 400 000 ₽ Удалёнка/Гибрид (Санкт-Петербург, Москва) C-разработчик (Storage) — от 350 000 и до 450 000 ₽ Удалёнка Инженер-программист С++ — от 250 000 и до 300 000 ₽ Офис/Удалёнка (Москва) ✍️ Еще больше топовых вакансий — в нашем канале C++ jobs 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #буст

👁 C++ Ranges. Требования к диапазонам C++20 ввёл концепты — способ формально выразить требования к типам. В Ranges они используются повсеместно, поэтому важно понимать, что говорят сообщения об ошибках и почему один алгоритм принимает vector, а другой требует что-то большее.
// ❌ Не скомпилируется
std::list<int> lst = {3, 1, 2};
std::ranges::sort(lst);
// Ошибка: list не удовлетворяет концепту random_access_range

// ✅ vector удовлетворяет random_access_range
std::vector<int> vec = {3, 1, 2};
std::ranges::sort(vec);

// ✅ У list есть собственный метод сортировки
lst.sort();
🍋 Иерархия концептов Концепты выстроены в цепочку наследования: каждый следующий добавляет требования к предыдущему. sized_range и viewable_range — ортогональны иерархии, они не зависят от позиции в цепочке.
range
 └── input_range
      └── forward_range
           └── bidirectional_range
                └── random_access_range
                     └── contiguous_range
‼️ Зачем нужен viewable_range? Ещё есть viewable_range, он тоже не входит в иерархию. Нужен, так как не любой range можно безопасно обернуть во view. Если передать временный объект, итератор получит висячий указатель — объект уничтожается раньше, чем его успевают использовать. Концепт viewable_range запрещает это на уровне компилятора. 🍩 Проверка концептов в compile-time Тут всё просто, нужно обернуть проверку в static_assert и сразу, на этапе компиляции, получишь ошибку если что-то не так:
static_assert(std::ranges::random_access_range<std::vector<int>>);
static_assert(!std::ranges::random_access_range<std::list<int>>); 
static_assert(std::ranges::bidirectional_range<std::list<int>>);
🐸 Продолжение следует... 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #константная_правильность

🎈 Минималистичная настройка редактора Zed Плейлист с пошаговой настройке редактора Zed для минималистов в духе Neovim. Так ж
🎈 Минималистичная настройка редактора Zed Плейлист с пошаговой настройке редактора Zed для минималистов в духе Neovim. Так же на канале лежит плейлист с похожей настройкой для VSCode. ✏️ Настройка Zed ✏️ Настройка VSCode 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #буст

Какой PMR-аллокатор оптимален для объектов, живущих только в одной итерации?
Anonymous voting

🏃‍♀️ Уже завтра стартует курс по разработке AI-агентов. Про AI-агентов часто думают, что это просто модная обертка над джпт
🏃‍♀️ Уже завтра стартует курс по разработке AI-агентов. Про AI-агентов часто думают, что это просто модная обертка над джпт для пет-проектов. Кажется, прикрутил API к скрипту и типа готово. А вот и нет! Когда дело доходит до прода, начинаются настоящие проблемы.
Зачем глубоко копать мультиагентные системы, если можно обойтись старым добрым кодом? Как контролировать расходы на токены, чтобы новая фича не разорила бизнес? Как заставить агента работать стабильно и предсказуемо, а не галлюцинировать?
Эту инженерную часть мы и будем разбирать на курсе. Будем учиться интегрировать внешние API, работать с RAG, LangGraph, CrewAI и деплоить всё это так, чтобы работало как часы. Стартуем завтра. Для участия и доступа к программе переходите по ссылке.