uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

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

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

Kanalga Telegram’da o‘tish

Все самое полезное для плюсовика и сишника в одном канале. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @tproger_sales_bot Обратная связь: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #WXSSA

Ko'proq ko'rsatish

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

Библиотека C/C++ разработчика | cpp, boost, qt (@cppproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 16 811 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 717-o'rinni va Rossiya mintaqasida 39 129-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 16 811 obunachiga ega bo‘ldi.

26 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -53 ga, so‘nggi 24 soatda esa -12 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 10.76% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.45% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 810 marta ko‘riladi; birinchi sutkada odatda 748 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 2 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent c++, навигация, компилятор, удалёнка, developer kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все самое полезное для плюсовика и сишника в одном канале. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @tproger_sales_bot Обратная связь: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #W...”

Yuqori yangilanish chastotasi (oxirgi ma’lumot 27 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

16 811
Obunachilar
-1224 soatlar
-207 kun
-5330 kun
Postlar arxiv
👾 GDB: отладка без боли Автор статьи разбирает GDB с нуля и показывает, как перестать бояться отладчика и находить баги за м
👾 GDB: отладка без боли Автор статьи разбирает GDB с нуля и показывает, как перестать бояться отладчика и находить баги за минуты, а не часы. ❗ Ключевые моменты статьи: • как backtrace за секунды показывает точное место падения и стек вызовов • пошаговое выполнение кода с next/step и просмотр значений переменных прямо в рантайме • TUI-режим — визуальный интерфейс GDB, про который почти нет статей на русском Основной фокус — практика: реальный пример с Segmentation fault, который cout не помог бы поймать, а GDB раскрывает за 15 секунд через bt и print. Статья написана для тех, кто только начинает или до сих пор избегает отладчика. Никакой магии — 80% задач решается 5–10 командами, которые разбираются по одной. 👉 Статья 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #линкер_рекомендует

📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и инт
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++. 😎 Интересное: • Сколько стоит LOG_DEBUG()? — разбор на бэнчмарках сколько реально стоит отладка с помошью логов • promise_type::operator new — удобное управление аллокациями корутин • IntelliJ IDEA: продвинутый дебаг — удобный дебаг в IDE от JetBrains • sentinel_t — зачем ranges придумали конец диапазона как отдельный тип • Вышел Qt 6.11 — добавили много полезного функционала • Генератор от QuickCoderHub — бесплатный генератор CMakeLists.txt с удобным UI 🔹📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #свежак

🧩 Выходной челлендж: дочисти парсер команд У тебя есть заготовка интерактивной оболочки — read-eval-print loop. Осталось дописать несколько ключевых частей.
#include <iostream>
#include <sstream>
#include <vector>
#include <string>

std::vector<std::string> parseCommand(const std::string& line) {
    // TODO: разбить строку на токены по пробелам
    // Учти: несколько пробелов подряд — не ошибка
}

void execute(const std::vector<std::string>& tokens) {
    if (tokens.empty()) return;
    
    if (tokens[0] == "echo") {
        // TODO: вывести все аргументы через пробел
    } else if (tokens[0] == "exit") {
        exit(0);
    } else {
        // TODO: вывести "Unknown command: <имя команды>"
    }
}

int main() {
    std::string line;
    while (true) {
        std::cout << "> ";
        if (!std::getline(std::cin, line)) break;
        execute(parseCommand(line));
    }
}
Задача: заполни три TODO. 💬 Покажи своё решение — особенно интересны варианты с std::istringstream и ручным разбором. 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #междусобойчик

⚡️ Бесплатный генератор CMakeLists.txt QuickCoderHub выкатил бесплатный браузерный генератор CMakeLists.txt для C++ проектов
⚡️ Бесплатный генератор CMakeLists.txt QuickCoderHub выкатил бесплатный браузерный генератор CMakeLists.txt для C++ проектов — никакой установки, работает полностью в браузере. ❗️ Ключевые моменты инструмента: • визуальная настройка и автогенерация CMakeLists.txt прямо в браузере • нулевые зависимости — не нужно ничего устанавливать на машину • мгновенный результат без ручного написания конфигурационных файлов Основной фокус — убрать рутину настройки системы сборки и дать разработчику готовый CMakeLists.txt под его проект за секунды. Удобно при старте нового проекта, на собеседованиях, или когда нужно быстро поднять сборку без погружения в документацию CMake. 🍪 Генератор 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #буст

😱 Если ваш продукт не умеет отдавать данные в формате, понятном AI-агенту, то вас просто не существует Скрипт не будет кликать по красивым кнопкам в браузере, он уйдёт к конкуренту с нормальным API. Перестроить архитектуру под машинных клиентов — это уже не хайп, а необходимое условие сохранения конкурентоспособности. Как адаптировать продукт и не исчезнуть из выдачи: — интегрировать MCP и A2A-взаимодействие, чтобы агенты могли вас читать; — научиться контролировать стоимость (лимиты, кэш, роутинг между моделями); — настроить AgentOps: трейсинг, логирование и отлов регрессий. Всё это ждёт вас на обновлённом курсе «Разработка AI-агентов». Мы специально сделали фокус на утилитарном инжиниринге и production-ready решениях. Кстати, до 29 марта можно забрать курс с большой скидкой, и стоит поторопиться — мест на потоке всё меньше. Зафиксировать цену и начать деплоить агентов без слива бюджета 👈

🚀 Вышел Qt 6.11 23 марта Qt Company выпустила Qt 6.11 — промежуточный релиз стабильной ветки Qt 6. Полгода публичной поддержки + ещё полгода для коммерческих пользователей. 🦴 Главное в релизе: 🎨 Qt Canvas Painter — новый модуль для аппаратно ускоренной 2D-отрисовки через RHI (OpenGL, Vulkan, Metal, Direct3D). В тестах обгоняет QPainter+OpenGL: в 2× на ноутбуке, в 5× на бюджетном Android-планшете, в 10× на флагманском Samsung Galaxy Tab S8 🌐 Qt WebEngine — поддержка расширений Chromium 🔊 PipeWire — встроенный аудиобэкенд 🎮 Qt Quick 3D — добавлены SSGI и SSR (реалистичное освещение и отражения в реальном времени), улучшено сглаживание движущихся объектов 📊 Qt Graphs — новый тип CustomSeries для произвольных графиков, поддержка нескольких осей в 3D-графиках, пример Wind Turbine Dashboard ⚡ Qt TaskTree (экспериментальный) — декларативный подход к асинхронным задачам на C++. 🔗 Qt OpenAPI — генерация HTTP-клиентского кода из YAML-спецификации OpenAPI 📱 Android 16 + поддержка Google Play Feature Delivery для разбивки приложений на пакеты 🖼️ SVG/Lottie — поддержка морфинг-анимации, масок и символов SVG, стабилизация Qt Quick VectorImage ✏️ Подробнее 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #свежак

😎 Топ-вакансий для C++ разработчиков за неделю Senior Embedded Software Engineer — от 350 000 ₽ Удалёнка Middle+/Senior C++ Developer —от 2500 и до 3500 $ Удалёнка C/C++ developer — от 200000 ₽ Удалёнка/гибрид (Москва) ✍️ Еще больше топовых вакансий — в нашем канале C++ jobs 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #буст

💡 sentinel_t — зачем ranges придумали конец диапазона как отдельный тип В классических итераторах begin и end — один тип. В ranges конец диапазона может быть совершенно другим типом. Это ломает интуицию, но открывает возможности. 🔍 Проблема однотипных итераторов std::string::iterator для begin и end — одно и то же. Чтобы проверить конец, нужно держать два объекта одного размера и сравнивать их. Для C-строк это расточительно: \0 в памяти уже есть, но стандартный end — это полноценный указатель. ⚡️ Sentinel как концепт В ranges введён концепт sentinel_for<S, I>: тип S является sentinel для итератора I, если их можно сравнивать оператором ==, даже если S != I.
// Sentinel для null-terminated строки
struct null_sentinel {
    bool operator==(const char* p) const { return *p == '\0'; }
};

// Теперь можно:
auto r = subrange(ptr, null_sentinel{});
💡 unreachable_sentinel Специальный std::unreachable_sentinel_t всегда возвращает false при сравнении — это сигнал компилятору, что конец никогда не достигается в данной ветке. Используется в take_view и counted_iterator, чтобы избежать лишних проверок в горячих циклах.
auto v = std::views::counted(ptr, n); 
// end() имеет тип unreachable_sentinel_t
// компилятор оптимизирует проверку конца
⚠️ Именно из-за разнотипных sentinel std::ranges::distance работает за O(n) для forward-итераторов — он вынужден идти до sentinel, не зная расстояния заранее. Sentinel — это обобщение понятия «конец», а не просто переименование end(). 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом

👑 IntelliJ IDEA: продвинутый дебаг Представь, что есть цикл на 10 000 элементов, и баг воспроизводится только на одном конкретном объекте. Без Conditional Breakpoints придется жать F8 вручную сотни раз. А с ними дебаггер сам остановится в нужный момент. 🔹 Как включить Кликни правой кнопкой на кружок брейкпоинта → появится поле Condition. Введите любое булево Java-выражение. Всё, дебаггер будет останавливаться только когда оно true. 🔹 Примеры из реальной жизни ▪️ Фильтрация по ID
user.getId() == 42
Останавливаемся только на конкретном пользователе — удобно при обработке списка сущностей из БД. ▪️ Фильтрация по содержимому строки
request.getUrl().contains("/admin")
Отлавливаем только определённые HTTP-запросы в фильтре или интерцепторе. ▪️ Ловим NPE до того, как он случился
order.getItems() == null
Останавливаемся именно тогда, когда данные уже сломаны, а не после падения. ▪️ Условие по индексу в цикле
i == 999
Прыгаем сразу к последней итерации, не прокручивая весь цикл. 🔹 Продвинутые трюки — Log message вместо остановки. Если не хотите прерывать выполнение, а просто логировать — в том же окне брейкпоинта включите "Evaluate and log" и введите выражение. — Pass count. Чуть ниже в настройках брейкпоинта есть поле "Pass count" — брейкпоинт сработает только на N-м попадании. — Disable until hit. Можно настроить цепочку: один брейкпоинт активирует другой. В настройках есть "Disable until breakpoint is hit" — указываете другой брейкпоинт, и текущий начнёт работать только после срабатывания того. ⚠️ Condition вычисляется на каждом попадании в брейкпоинт — это вызов на стороне JVM. В горячих местах (tight loop, высоконагруженный метод) это может заметно тормозить приложение. ══════ Навигация ══════ Вакансии • Задачи • Собесы 🐸 Библиотека джависта #CoreJava

🩹 promise_type::operator new — кастомная аллокация фрейма Корутина выделяет фрейм через ::operator new. Но этот вызов можно перехватить и направить в любой аллокатор — арену, пул, стек. Механизм называется coroutine allocator customization. 👁 Как это работает Когда компилятор генерирует код запуска корутины, он ищет operator new в двух местах по порядку: сначала в типе promise_type — если есть, использует его; затем глобальный ::operator new.
struct MyPromise {
    static void* operator new(std::size_t size) {
        return my_pool.allocate(size);
    }
    static void operator delete(void* ptr, std::size_t size) {
        my_pool.deallocate(ptr, size);
    }
};
⚡️ Параметры аргументов корутины Стандарт позволяет передать аргументы самой корутины в operator new. Компилятор сначала пробует сигнатуру с аргументами:
static void* operator new(std::size_t sz, Allocator& alloc, auto&&...) {
    return alloc.allocate(sz);
}
Это мощно: можно пробросить аллокатор как первый параметр корутины и использовать его для фрейма — без глобального состояния. ‼️ Heap Elision и operator new Если компилятор применяет heap elision и вообще убирает аллокацию — ваш кастомный operator new не вызовется. Это нормально. Но если вы используете operator new для отладки размеров, убедитесь что оптимизация отключена (-O0 или [[clang::noinline]] на корутину). ✅ Применение Кастомный аллокатор в корутинах даёт: lock-free аллокацию, аллокацию с арены (без освобождения по одному), размещение на стеке вызывающего. Последнее — буквально O(1) без heap, если время жизни гарантировано. 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом

Как корутина выделяет память для своего фрейма?
Anonymous voting

🦴 Сколько стоит LOG_DEBUG()? Автор статьи провёл benchmark четырёх популярных C++ библиотек логирования и выяснил, сколько н
🦴 Сколько стоит LOG_DEBUG()? Автор статьи провёл benchmark четырёх популярных C++ библиотек логирования и выяснил, сколько на самом деле стоит один вызов LOG_INFO(). ❗ Ключевые моменты статьи: • разница в производительности между библиотеками достигает почти двух порядков • даже отключённый лог имеет ненулевой overhead — библиотека всё равно проверяет уровень и готовит аргументы • выбор API форматирования бьёт по скорости: iostream в 4–5 раз медленнее C-style printf Основной фокус — null-benchmark: измерение стоимости самого вызова логирования, когда вывод отключён. Именно здесь разрыв между библиотеками оказывается максимальным. Особенно актуально для сервисов, где логирование вызывается в горячем пути — миллионы раз в секунду из разных потоков. 🔹📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #свежак

Какой механизм C++23 позволяет избежать лишних копирований при передаче объектов в функцию, не нарушая семантику значений?
Anonymous voting

📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и инт
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++. 😎 Интересное: • Современный C++ для встраиваемых систем — подробный разбор того, как использовать современный C++ в embedded-системах • std::mem_fn vs лямбда — удобная альтернатива лямбдам для оборачивания методов • C++23 и дальше — альтернатива исключениям для обработки ошибок в функциональном стиле • Почему опытным PM, PO и руководителям тоже нужен менторинг — разбор, нужно ли дальнейшее развитие если ты уже PM • Closure size и SBO: когда лямбда уходит в куч — ответ почему лямбда может оказаться в куче • std::span — обёртка над массивами в C++26 стала ещё удобнее и появилось много полезных особенностей • Почему локальные переменные «бесплатны» — описание почему локальные дешевле выделения памяти в куче 🔹📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #свежак