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

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

Kanalga Telegram’da o‘tish

Все самое полезное для плюсовика и сишника в одном канале. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @proglib_adv Для обратной связи: @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 867 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 486-o'rinni va Rossiya mintaqasida 38 903-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

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

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

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 8.43% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining N/A% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 422 marta ko‘riladi; birinchi sutkada odatda 0 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 3 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 По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17 #WXS...

Yuqori yangilanish chastotasi (oxirgi ma’lumot 27 Avgust, 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 867
Obunachilar
+224 soatlar
-197 kunlar
-9830 kunlar
Postlar arxiv
🕯️ Hello World в 2 МБ Простейшая программа на C++ с iostream и статической линковкой на GCC 15 выдаёт бинарник в 2,3 МБ. Для
🕯️ Hello World в 2 МБ Простейшая программа на C++ с iostream и статической линковкой на GCC 15 выдаёт бинарник в 2,3 МБ. Для вывода 11 символов — как-то многовато. • iostream тянет за собой инициализацию std::cout, std::stringstream, локали, виртуальные функции и шаблоны — всё это ради одного вызова operator<<. Замена на printf сразу роняет размер до 42,5 КБ • Флаг -s срезает ~1,2 МБ отладочной информации, которую компилятор зачем-то пихает в релизный бинарник по умолчанию • Тенденция по версиям GCC показательна: тот же iostream-бинарник на GCC 3.4.2 весил 260 КБ, на 15.2.0 — уже 1,05 МБ. С каждой версией зависимости жиреют Принцип «не плати за то, что не используешь» на практике работает ровно до того момента, пока компилятор сам не решит, что тебе нужно. 👉 Более детальный разбор ✏️ Вы проверяли, сколько весит ваш «минимальный» бинарник? 📍 Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #буст

Какую проблему метапрограммирования решают шаблоны с переменным числом аргументов совместно с рекурсией?
Anonymous voting

📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и инт
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++. 😎 Интересное:oo-alloc — набор объектно-ориентированных обёрток поверх низкоуровневого управления памятью •Что скрывает auto(x) — именованная операция, позволяющая удобно копировать переменные • Just My Code в Visual Studio — инструмент, отключающий переходы в режиме отладки в код, который не принадлежит вашему проекту 📙 Ranges: Разбиение диапазонов: views::split, chunk, chunk_byГенераторы: views::iota и views::repeat 🔹📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #свежак

🗓 14 мая в 19:00 (Мск) встречаемся в онлайне. Тема: Почему AI-продукты на базе LLM ломаются и как сделать, чтобы работало. В кружке выше Эмиль Сатаев рассказал, какие именно проблемы с LLM в проде будем разбирать. Что в программе:
- Разберем реальные кейсы стартапов и ограничения LLM. - Обсудим рабочие архитектуры: RAG, human-in-the-loop, контроль качества. - Ответим на ваши вопросы и разберем кейсы участников.
🎁 Бонусы: в конце вебинара подарим промокод на скидку 10.000 ₽ на курсы и разыграем подписки на полезные AI-сервисы. 👉 Зарегистрироваться на вебинар

🫠 Задача на выходные: LRU Cache Классика интервью. Проверяет знание STL, сложности операций и дизайн-мышление😸
// Реализуй класс LRUCache:
// - LRUCache(int capacity)
// - int get(int key)           // O(1)
// - void put(int key, int val) // O(1)
//
// При переполнении вытесняется
// наименее недавно использованный элемент.
//
// Разрешено использовать STL.
✏️ Реализуй. Объясни выбор структур данных и почему сложность O(1). 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #константная_правильность

🥳 Генераторы: views::iota и views::repeat Ranges умеют генерировать их на лету — без выделения памяти под вектор. Разберём два главных генератора. 🍕 views::iota — числовой диапазон Генерирует последовательность чисел в полуоткрытом интервале [start, end):
// Числа от 0 до 9
for (int i : views::iota(0, 10)) {
    std::cout << i << " "; // 0 1 2 3 4 5 6 7 8 9
} 
Можно передать только одно значение — получится бесконечная последовательность:
auto naturals = views::iota(1); // 1, 2, 3, 4, ...
auto first_10 = naturals | views::take(10);
❗️ Бесконечный диапазон обязательно нужно ограничить — например, через views::take. 🌳 Индексированный обход (zip + iota) До появления views::enumerate пару (индекс, значение) получали через views::zip с iota:
std::vector<std::string> fruits = {"яблоко", "банан", "вишня"};

for (auto [i, fruit] : views::zip(views::iota(0), fruits)) {
    std::cout << i << ": " << fruit << "\n";
}
// 0: яблоко
// 1: банан
// 2: вишня
В C++23 для этого есть views::enumerate — но zip + iota по-прежнему работает и даёт понять, как устроена индексация изнутри. 🍙 views::repeat — повторение значения (C++23) Генерирует бесконечный поток из одного и того же значения:
for (int x : views::repeat(0) | views::take(5)) {
    std::cout << x << " "; // 0 0 0 0 0
}
Или сразу с ограничением — передаём второй аргумент:
for (auto s : views::repeat("hello", 3)) {
    std::cout << s << " "; // hello hello hello
}
❗️ Форма с двумя аргументами появилась в C++23 и возвращает конечный диапазон — views::take не нужен. 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #константная_правильность

🍋 Just My Code в Visual Studio По умолчанию, когда вы нажимаете F11 (Step Into) в Visual Studio, отладчик проваливается в каждую функцию — включая стандартную библиотеку, runtime и сторонний код? Функция Just My Code решает эту проблему. При включении отладчик автоматически перешагивает через код, который не принадлежит вашему проекту — будь то STL, CRT или любые внешние библиотеки. 🍀 Включить просто:
Tools → Options → Debugging → General → Enable Just My Code
🍬 Пример:
#include <vector>
#include <algorithm>
#include <iostream>

int doubleValue(int x) {
    return x * 2;  // ← ВАШ код
}

int main() {
    std::vector<int> v = {3, 1, 4, 1, 5};

    // F11 здесь без JMC → провалится в std::sort
    std::sort(v.begin(), v.end());

    // F11 здесь без JMC → провалится в std::transform
    std::transform(v.begin(), v.end(), v.begin(), doubleValue);

    return 0;
}
Без JMC: F11 на std::sort уводит вас в дебри introsort внутри STL. С JMC: отладчик перепрыгивает sort и останавливается на следующей вашей строке. 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #буст

🎤 Ваши знания по ИИ-агентам + наша аудитория в 1 млн человек = профит Мы в Proglib активно качаем тему ИИ-агентов. Если вы в
🎤 Ваши знания по ИИ-агентам + наша аудитория в 1 млн человек = профит Мы в Proglib активно качаем тему ИИ-агентов. Если вы в теме, то у нас есть предложение 👇 Что с нас? - Огромный охват: пропиарим ваши соцсети и продукты на 1 000 000+ айтишников. - Личный бренд: станете узнаваемым экспертом в самой горячей нише 2026 года. - Никакой рутины: наши редакторы сами упакуют ваши мысли в крутые посты. Что с вас? Любой экспертный контент по ИИ-агентам: кейсы из прода, шпаргалки, статьи, наработки по стеку (LangGraph, CrewAI, AutoGen и др.) или просто мысли по архитектуре. 👉 Стать экспертом и заявить о себе

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

🔪 Разбиение диапазонов: views::split, chunk, chunk_by Ranges-библиотека умеет не только фильтровать и трансформировать, но и разбивать диапазоны на части. Разберём три инструмента — каждый для своей задачи. 🍴 views::split — разбивка по разделителю
std::string csv = "один,два,три,четыре";

// Разбиваем по запятой
for (auto part : csv | views::split(',')) {
    // part — под-диапазон символов, не строка
    // В C++20 явно конструируем string:
    std::cout << std::string(part.begin(), part.end()) << "\n";
}
// один
// два
// три
// четыре
В C++23 появился std::ranges::to, и конвертация стала лаконичнее:
for (auto part : csv | split(',')) {
    std::cout << std::ranges::to<std::string>(part) << "\n";
}
❗️views::split возвращает под-диапазоны, а не строки — явное преобразование обязательно в обоих стандартах. 🥨 views::chunk(n) — разбивка на блоки фиксированного размера (C++23)
std::vector<int> data = {1, 2, 3, 4, 5, 6, 7};
for (auto chunk : data | views::chunk(3)) {
    for (int x : chunk) std::cout << x << " ";
    std::cout << "\n";
} /
/ 1 2 3
// 4 5 6
// 7
❗️ Если размер диапазона не делится на n нацело — последний блок содержит оставшиеся элементы. 🍪 views::chunk_by — разбивка по условию (C++23) Группирует соседние элементы, пока выполняется предикат между двумя соседями.
std::vector<int> v = {1, 1, 2, 3, 3, 3, 4, 4};
// Группируем подряд идущие равные элементы
for (auto group : v | views::chunk_by(std::equal_to{})) {
    for (int x : group) std::cout << x << " ";
    std::cout << "| ";
} /
/ 1 1 | 2 | 3 3 3 | 4 4 |

// Вариант с std::equal_to<>{} — лаконичнее:
for (auto group : v | chunk_by(std::equal_to<>{})) { ... }
❗️ Предикат принимает два соседних элемента — новая группа начинается там, где он вернул false. 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #константная_правильность

😆 Платить ИИ за работу меньше, в отличии от человека, не получится 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++
😆 Платить ИИ за работу меньше, в отличии от человека, не получится 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #развлекалово

🍿 Что скрывает auto(x): новый синтаксис C++23 В C++23 появился синтаксис auto(x) и auto{x}. Это не очередной сахар для объявления переменных. На самом деле — это именованная операция, у которой есть точная семантика. 🥳 Что происходит под капотом: auto(x) — это decay-copy: создаётся prvalue того же типа, что и x, но после применения std::decay. То есть: • Ссылки снимаются • Cv-квалификаторы (const/volatile) удаляются • Массивы → указатели • Функции → указатели на функции
const int& r = 42;
auto copy = auto(r); // int, не const int&
⚡️ До C++23 для того же результата писали:
auto copy = std::decay_t<decltype(r)>(r);
Зачем нужна явность? В простых случаях auto copy = r тоже даст int — auto и так делает decay. Но в обобщённом коде важно явно сигнализировать намерение: "я хочу копию, а не прокси или view". Главное применение — защита от UB при модификации контейнера. Классический пример — реализация pop_front:
void pop_front(auto& container) {
    std::erase(container, auto(container.front()));
    // Без auto() — UB: front() может инвалидироваться
    // в процессе удаления элементов
}
Без auto() мы передаём ссылку на элемент, который erase может разрушить до сравнения. С auto() — сначала создаётся копия значения, потом происходит удаление. Безопасно и читаемо. ❗️ auto(x) закрывает целый класс subtle-багов в шаблонном коде — там, где случайная ссылка вместо копии приводит к UB или неожиданному поведению. 📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #константная_правильность

🦾 Почему ваши AI-продукты на базе LLM ломаются (и как это чинить)? Выкатили ИИ-фичу в прод, а она галлюцинирует, падает или
🦾 Почему ваши AI-продукты на базе LLM ломаются (и как это чинить)? Выкатили ИИ-фичу в прод, а она галлюцинирует, падает или выдает мусор? Приглашаем на открытый вебинар, где разберем реальную боль внедрения LLM-агентов и научимся делать так, чтобы «всё работало». 🗓️ Когда: 7 мая в 19:00 МСК ⏱️ Формат: 60 минут мяса + 30 минут ответов на ваши вопросы 🧑🏻‍💻 Кто вещает: Эмиль Сатаев — Backend Platform Developer (8+ лет в разработке). Человек, который своими руками внедряет LLM и агентные системы в реальные коммерческие сервисы. 🎁 Главный бонус для онлайна: Только участникам прямого эфира подарим уникальный промокод на скидку 10.000 ₽ на большой курс AgentOps. 👉 Занять место на вебинаре

Что делает auto(x) в C++23?
Anonymous voting

🏛️ oo-alloc — пользовательские аллокаторы Написать аллокатор в C++ несложно. Написать его правильно — уже интереснее. oo-all
🏛️ oo-alloc — пользовательские аллокаторы Написать аллокатор в C++ несложно. Написать его правильно — уже интереснее. oo-alloc предлагает объектно-ориентированную модель поверх низкоуровневого управления памятью. • Проблема std::allocator: шаблон привязан к типу, его сложно использовать совместно для разных типов в одном контексте • Иерархия классов даёт полиморфизм через интерфейс, но добавляет косвенный вызов через таблицу виртуальных функций — и авторы это понимают • Выделение памяти через пул снижает нагрузку на кучу и устраняет фрагментацию при объектах фиксированного размера Альтернатива из стандарта — std::pmr::polymorphic_allocator с memory_resource. Тот же полиморфизм, но без overhead своей иерархии и с поддержкой в STL-контейнерах из коробки. Если нужен production-grade вариант — сначала смотреть туда. 👉 Github 🖍️ Стоит ли вообще писать кастомный аллокатор в 2026, когда есть pmr? 📍 Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #буст

📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и инт
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++. 😎 Интересное:Минималистичная настройка редактора Zed — плейлист с настройкой редактора Zed для минималистов • Vtable изнутри — разбор устройства таблиц виртуальных функций • Деревья в алгоритмах — гайд по иерархическим структурам • Бесплатные курсы от MIT — университетские курсы по shell, git и др. • Иерархический FSM — разбор способа решения проблемы состояний • GCC 16: наконец-то читаемые ошибки компилятора — обзор улучшений обработки и вывода ошибок • Улучшения string и string_view в C++26, о которых давно мечтали — исправление костылей string_view 📙 Ranges: C++ Ranges. Требования к диапазонамstd::views::filter — ленивая фильтрация в C++20 views::transform — ленивые преобразования в C++20views::take и views::drop — срезы в C++ 🔹📍Навигация: ВакансииЗадачиСобесы Библиотека C/C++ разработчика #свежак