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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
19 601
Obunachilar
-624 soatlar
-477 kunlar
-16130 kunlar
Obunachilarni jalb qilish
Dekabr '25
Dekabr '25
+33
0 kanalda
Noyabr '25
+80
0 kanalda
Get PRO
Oktabr '25
+58
0 kanalda
Get PRO
Sentabr '25
+72
0 kanalda
Get PRO
Avgust '25
+90
0 kanalda
Get PRO
Iyul '25
+94
0 kanalda
Get PRO
Iyun '25
+134
0 kanalda
Get PRO
May '25
+129
0 kanalda
Get PRO
Aprel '25
+116
0 kanalda
Get PRO
Mart '25
+234
2 kanalda
Get PRO
Fevral '25
+184
2 kanalda
Get PRO
Yanvar '25
+136
2 kanalda
Get PRO
Dekabr '24
+139
2 kanalda
Get PRO
Noyabr '24
+230
2 kanalda
Get PRO
Oktabr '24
+187
2 kanalda
Get PRO
Sentabr '24
+168
2 kanalda
Get PRO
Avgust '24
+79
2 kanalda
Get PRO
Iyul '24
+53
2 kanalda
Get PRO
Iyun '24
+105
2 kanalda
Get PRO
May '24
+363
2 kanalda
Get PRO
Aprel '24
+355
7 kanalda
Get PRO
Mart '24
+364
7 kanalda
Get PRO
Fevral '24
+324
7 kanalda
Get PRO
Yanvar '24
+381
6 kanalda
Get PRO
Dekabr '23
+11 939
7 kanalda
Get PRO
Noyabr '23
+406
5 kanalda
Get PRO
Oktabr '23
+721
7 kanalda
Get PRO
Sentabr '23
+1 678
5 kanalda
Get PRO
Avgust '230
8 kanalda
Get PRO
Iyul '230
2 kanalda
Get PRO
Iyun '23
+10
0 kanalda
Get PRO
May '23
+592
2 kanalda
Get PRO
Aprel '23
+814
0 kanalda
Get PRO
Mart '23
+68
0 kanalda
Get PRO
Fevral '23
+1 035
0 kanalda
Get PRO
Yanvar '230
0 kanalda
Get PRO
Dekabr '220
0 kanalda
Get PRO
Noyabr '220
0 kanalda
Get PRO
Oktabr '22
+69
0 kanalda
Get PRO
Sentabr '22
+363
0 kanalda
Get PRO
Avgust '22
+342
0 kanalda
Get PRO
Iyul '22
+424
0 kanalda
Get PRO
Iyun '22
+492
0 kanalda
Get PRO
May '22
+238
0 kanalda
Get PRO
Aprel '22
+216
0 kanalda
Get PRO
Mart '22
+427
0 kanalda
Get PRO
Fevral '22
+181
0 kanalda
Get PRO
Yanvar '22
+14 806
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
17 Dekabr+3
16 Dekabr+2
15 Dekabr+1
14 Dekabr+2
13 Dekabr+1
12 Dekabr+5
11 Dekabr+1
10 Dekabr0
09 Dekabr+2
08 Dekabr+4
07 Dekabr+3
06 Dekabr0
05 Dekabr+1
04 Dekabr+3
03 Dekabr+2
02 Dekabr0
01 Dekabr+3
Kanal postlari
🤖 5 профессий в IT, которые появились благодаря ИИ Искусственный интеллект не только автоматизирует рутинные задачи, но и со
🤖 5 профессий в IT, которые появились благодаря ИИ Искусственный интеллект не только автоматизирует рутинные задачи, но и создает новые профессии, о которых еще несколько лет назад никто не слышал. Какие именно — рассказываем в этой статье. 👉 Статья Библиотека C/C++ разработчика #свежак

99920

2
🔧 std::promise — move-only тип. И это правильно! Попытка скопировать promise не скомпилируется. Почему? Потому что обещание должно быть выполнено ровно один раз, одним владельцем. // ❌ НЕ СКОМПИЛИРУЕТСЯ std::promise<int> prom1; std::promise<int> prom2 = prom1; // Error! // ✅ Move семантика — владение передаётся std::promise<int> prom1; std::promise<int> prom2 = std::move(prom1); // Типичное использование в потоке std::thread t([p = std::move(prom)]() mutable { p.set_value(42); // Только этот поток владеет promise }); Аналогия: Представьте promise как расписку о долге. Копия расписки — это две расписки? Или передача прав требования? Очевидно, второе. При передаче в std::thread или lambda используйте: • std::move для r-value • mutable lambda если будете вызывать set_value ⚡️ Move-only семантика — это фитча, а не bug. Она предотвращает race conditions и двойные set_value. Библиотека C/C++ разработчика #константная_правильность
1 300
3
⚙️ Структурированное логирование: JSON vs plain text? Текстовые логи хороши для человека, но кошмарны для автоматизированного анализа. Пришло время переходить на структурированное логирование. Структурированные логи в формате JSON или другом машиночитаемом формате позволяют легко фильтровать, агрегировать и анализировать данные. Вместо парсинга строк регулярками вы получаете готовые поля: timestamp, level, message, context, trace_id. В C++ это достигается через библиотеки типа spdlog с кастомными formatters или специализированные решения вроде Boost.Log. Ключевой момент — добавление контекста: user_id, request_id, session_id. Это превращает хаотичный поток логов в структурированные данные, с которыми может работать ELK stack, Grafana Loki или другие системы мониторинга. 😏 Используете ли вы структурированное логирование или всё ещё разбираете plain text? 🔹Курс «Алгоритмы и структуры данных» 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹Сайт Proglib Библиотека C/C++ разработчика #междусобойчик
1 576
4
Никаких утечек памяти — только чистые знания В мире C++ ценятся те, кто понимает, как работает железо и математика, а не прос
Никаких утечек памяти — только чистые знания В мире C++ ценятся те, кто понимает, как работает железо и математика, а не просто копипастит с StackOverflow. Укрепи фундамент, чтобы писать производительный код. Акция 1 + 2: Три курса по цене одного. Оплачиваешь самый дорогой — два других компилируются бесплатно. Выбор плюсовиков: — алгоритмы и структуры данных (обязательно); — математика для Data Science (если интересен highload AI). Получить доступ Актуально до 31 декабря. Сегментация выбора? Поможем: @manager_proglib
1 559
5
Voting
Какой тип cache locality здесь используется?
1 497
6
No text
No text
1 458
7
🍖 Рализация своего ECS движка Если std::map убивает весь перформанс, cache miss-ы на каждом шагу..., то пора задуматься о EC
🍖 Рализация своего ECS движка Если std::map убивает весь перформанс, cache miss-ы на каждом шагу..., то пора задуматься о ECS подходе. Возможно это то что тебе нужно. 💡 Автор статьи решил не сдаваться и полностью переписал архитектуру памяти своей ECS, применив data-oriented design на полную катушку. ❗ Ключевые моменты статьи: • compile-time разметка памяти через constexpr — никаких накладных расходов в рантайме • организация данных в Sectors — фиксированные блоки памяти, где компоненты лежат плотно друг к другу • chunk-аллокатор со степенями двойки вместо делений • сортировка по entityId для последовательного доступа и дружбы с CPU-префетчером Основной фокус — как устроить память так, чтобы процессор угадывал ваши намерения и подтягивал данные заранее, превращая случайные обращения в линейное чтение. Особенно актуально для разработчиков игровых движков и высоконагруженных систем, где каждый cache miss стоит дорого. 👉 Статья
1 685
8
No text
No text
1 706
9
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и инт
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++. 😎 Интересное: • Ставим Fedora на MacBook Pro 2019 с чипом T2 — инструкция по установке Fedora на MacBook • Симулятор: От MOS6502 к x86 — рассматривается развитие симулятора от самых простых микросхем и до x86 • 15 AI-инструментов для поиска работы в IT за рубежом — полезные инструменты для поиска работы • Короткий синтаксис concepts: что компилятор делает с auto? — фишка, которая позволит сделать код более читаемым • Что не так с public virtual? — рассматриваем как решить проблему с виртуальными функциями при наследовании 🔹Курс «Алгоритмы и структуры данных» 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹Сайт Proglib Библиотека C/C++ разработчика #свежак
1 870
10
Какие проблемы в этом коде и как их можно исправить?😼 🔹Курс «Алгоритмы и структуры данных» 🔹 Получить консультацию менедже
Какие проблемы в этом коде и как их можно исправить?😼 🔹Курс «Алгоритмы и структуры данных» 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹Сайт Proglib Библиотека C/C++ разработчика #междусобойчик
1 870
11
🐸 Подборка вакансий для C++-разработчиков за неделю Разработчик C++ / Rust (SDN dataplane, DPDK/DOCA API) — Удалёнка Разработчик С++ (Middle) — от 180 000 и до 400 000 ₽ Гибрид (Москва) Инженер-разработчик (C/C++/Qt/Embedded) — от 130 000 и до 250 000₽ Гибрид (Санкт-Петербург) C++ Engineer в компиляторах — от 300 000 ₽ Офис (Новосибирск) Разработчик C++ — Удалёнка Библиотека C/C++ разработчика
1 968
12
No text
No text
2 029
13
Плюсовики, собираемся 15 декабря в Москве и онлайн на встречу РГ21 С++ Ивент для практикующих C++-разработчиков и энтузиастов
Плюсовики, собираемся 15 декабря в Москве и онлайн на встречу РГ21 С++ Ивент для практикующих C++-разработчиков и энтузиастов, которые хотят понимать, куда движется язык, и участвовать в его развитии. Антон Полухин (Техплатформа Городских сервисов Яндекса) поделится новостями со встречи международного Комитета по стандартизации языка C++ — о прогрессе в работе над С++26, новинках и о том, какие комментарии к стандарту подготовила Россия. На встрече вы узнаете, как именно российским разработчикам участвовать в развитии стандарта языка, сможете задать свои вопросы спикеру и обменяться мнениями с коллегами. Подробности и регистрация
2 356
14
❌ Что не так с public virtual? Вы добавляете логирование в базовый класс, а оно не срабатывает? Добро пожаловать в мир публичных виртуальных функций. Проблема: Когда виртуальная функция публична, производные классы могут обойти любую логику базового класса: // ❌ Классический антипаттерн class Base { public: virtual void process(Data& data) { log("Processing..."); // Логика } }; class Derived : public Base { public: void process(Data& data) override { // Производный класс забыл вызвать Base::process() // Логирование пропало! } }; 💡Паттерн NVI решает это: NVI (Non-Virtual Interface) — паттерн, где публичные методы невиртуальные, а виртуальные — приватные. Базовый класс становится "шлюзом", контролирующим доступ к кастомизируемой логике. class IProcessor { public: void process(Data& data) { // Невиртуальный public validate(data); // Общая логика logStart(); // Тоже общая process(data); // Кастомизация logEnd(); } private: virtual void process(Data& data) = 0; // Виртуальный private void validate(Data& data) { /* ... */ } void logStart() { /* ... */ } void logEnd() { /* ... */ } }; Теперь каждый вызов process() гарантированно проходит через логирование. Производные классы физически не могут его обойти. 🔹Курс «Алгоритмы и структуры данных» 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹Сайт Proglib Библиотека C/C++ разработчика #константная_правильность
2 198
15
🍪 Короткий синтаксис concepts: что компилятор делает с auto? void foo(Sortable auto x) — это синтаксический сахар. Компилятор разворачивает его в полноценный шаблон с constraint. ⚡️ Трансформация // Пишешь: void foo(Sortable auto x); // Компилятор видит: template<typename T> requires Sortable<T> void foo(T x); Каждый auto становится отдельным шаблонным параметром. Если несколько auto — несколько параметров: void bar(Integral auto a, Floating auto b); // Превращается в: template<typename T1, typename T2> requires Integral<T1> && Floating<T2> void bar(T1 a, T2 b); 🔍 Return type То же самое работает с возвращаемым типом: Sortable auto get() { return std::vector{1, 2, 3}; } // Эквивалент: template<Sortable T> T get() { return std::vector{1, 2, 3}; } Компилятор выводит тип возврата и проверяет concept. 💡 Decltype(auto) с concepts Можно даже: Sortable decltype(auto) get_ref(auto& container) { return container[0]; } Здесь decltype(auto) сохраняет ссылочность, а Sortable проверяется для полученного типа. ⚠️ Ограничение Нельзя смешивать в одном объявлении: // ОШИБКА: template<typename T> void foo(Sortable auto x, T y); // auto создаёт НОВЫЙ шаблонный параметр, конфликт с T 📌 Манглинг Для компоновщика разницы нет — и короткий, и длинный синтаксис создают одинаковый mangled name. Это чисто синтаксическое удобство. 🔹Курс «Алгоритмы и структуры данных» 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹Сайт Proglib Библиотека C/C++ разработчика #под_капотом
2 021
16
🐸Библиотека шарписта #garbage_collector
🐸Библиотека шарписта #garbage_collector
1 901
17
Летим зимовать ✈️ Когда холодает, айтишники пакуют чемоданы, а мы разыгрываем ваучер на 50 000 рублей в Островке. Поехать к морю или остаться среди снежных пейзажей — выбирайте сами! Чтобы участвовать, нужно оставить любую реакцию под этим постом и подписаться на каналы ниже: 😎 Типичный программист 🐸 Библиотека программиста 🟢 Ostrovok! Tech Теперь осталось нажать на кнопку участия под этим постом и вы в игре! Итоги подведём 12 декабря. Победителя выберем с помощью бота. Подробнее с правилами можно ознакомиться здесь. Всем удачи! Участников: 111 Призовых мест: 1 Дата розыгрыша: 19:00, 12.12.2025 MSK (3 дня)
1 358
18
🤖🔎 15 AI-инструментов для поиска работы в IT за рубежом В далеком 2023 году я уже делала подборку AI-инструментов, помогающ
🤖🔎 15 AI-инструментов для поиска работы в IT за рубежом В далеком 2023 году я уже делала подборку AI-инструментов, помогающих в поиске работы. В тот список я в основном включила конструкторы резюме и генераторы сопроводительных писем. Но ведь поиск работы не ограничивается только составлением резюме и cover letter — тем более сейчас, в условиях высококонкурентной среды и рынка работодателей. Поэтому я решила углубиться в эту тему и найти как можно больше разных инструментов, которые призваны оптимизировать поиск работы и позволят качественнее подготовиться к собеседованию. 👉 Статья 🔹Курс «Алгоритмы и структуры данных» 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹Сайт Proglib Библиотека C/C++ разработчика #свежак
2 105
19
От первой строчки кода — до миллионов запросов в секунду. В VK бэкендеры решают задачи, которые действительно меняют цифровой
От первой строчки кода — до миллионов запросов в секунду. В VK бэкендеры решают задачи, которые действительно меняют цифровой ландшафт. Узнайте об их принципах работы и драгоценных победах. По ссылке — истории из первых рук и вакансии для тех, кто не боится вызовов.
2 151
20
📕 Симулятор: От MOS6502 к x86 💡В статье автор делится своим годовым путём эволюции симулятора от простого MOS6502 через Intel 8080 к полноценному x86, раскрывая все технические нюансы и архитектурные решения. ❗️ Ключевые моменты статьи: • элегантное решение проблемы «спаренных» регистров через union и макросы • реализация сложной системы декодирования инструкций x86 с mod|reg|R/M байтом • архитектура I/O через Memory-mapped и Port-mapped подходы Основной фокус — практические проблемы перехода от простых 8-битных процессоров к архитектуре x86 и способы их решения через шаблоны C++ и продуманную систему обработки инструкций. Особенно актуально для разработчиков эмуляторов, системных программистов и всех, кто интересуется низкоуровневой архитектурой процессоров. Вы узнаете, что даже отказ от сложного решения (tick-система) может быть правильным архитектурным выбором, а правильное использование union, шаблонов и указателей на функции позволяет построить элегантную и расширяемую систему эмуляции. 👉 Статья 🔹Курс «Алгоритмы и структуры данных» 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹Сайт Proglib Библиотека C/C++ разработчика #свежак
2 076