Библиотека C/C++ разработчика | cpp, boost, qt (@cppproglib) — Telegram-канал | Telegram Dialogs
Все каналы
Библиотека C/C++ разработчика | cpp, boost, qt

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

@cppproglib

17.1K подписчиков технологии 💬 Комментарии открыты

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

Последние публикации

Библиотека C/C++ разработчика | cpp, boost, qt
17.07.2026 19:57 · 👁 284
🏃‍♀️ Proglib Academy #развлекалово
Библиотека C/C++ разработчика | cpp, boost, qt
16.07.2026 15:04 · 👁 433
🫡 Один и тот же запрос к AI можно выполнить двумя способами — и получить совершенно разный результат. 1️⃣ способ — просто попросить написать код. Модель может сгенерировать рабочее решение, но именно на этапе проверки часто всплывают пропущенные edge case’ы, ошибки обработки или проблемы с тестами. 2️⃣ способ — дать агенту цикл Think → Act → Observe. Он не останавливается после первой попытки: планирует действия, проверяет результат и, если находит ошибку, исправляет её и пробует снова. Самое интересное, что разница здесь не столько в модели ❕ Claude, GPT или другая LLM могут быть одинаковыми. Разницу создаёт инженерная система вокруг них. 📅 Именно это разберём 23 июля в 19:00 (МСК) на бесплатном вебинаре с Алексеем Жиряковым (Executive Director в Сбере, GenAI Data Platform, ex-CTO Stream и KION). На живом демо покажем, как один и тот же запрос работает без агентной системы и с ней 🔥 🔗 Регистрация 🏃‍♀️ Proglib Academy
Библиотека C/C++ разработчика | cpp, boost, qt
16.07.2026 11:17 · 👁 684
🍙 Sentinel: нестандартный конец диапазона В прошлом посте stride_view отдавал из end() пустую stride_sentinel{}, а итератор сам таскал внутри end_ и сравнивался с ним. Это уже был sentinel — просто самый скромный его вид. Сегодня посмотрим, на что sentinel способен, когда условие конца живёт в нём самом. 🍬 Итератор говорит «где», sentinel — «когда стоп» Обычный end() в STL — это итератор на позицию за последним элементом. Чтобы его получить, позицию надо знать заранее. Sentinel ломает это правило. Он не хранит позицию — он хранит условие остановки. Итератор шагает вперёд и на каждом шаге как бы спрашивает: «мы уже приехали?». Sentinel отвечает, глядя не на свой адрес, а на то, куда сейчас показывает итератор. 🍴 Классика жанра — C-строки У C-строки нет заранее известного конца: он определяется на лету — идём, пока не встретим '\0'. Идеальный кейс для sentinel: struct null_sentinel_t { // 🔴 Сравниваем не адреса, а СОДЕРЖИМОЕ: // итератор == концу, если он смотрит на '\0' bool operator==(const char* ptr) const { return *ptr == '\0'; } }; inline constexpr null_sentinel_t null_sentinel{}; struct cstring_range { const char* ptr; const char* begin() const { return ptr; } // обычный итератор null_sentinel_t end() const { return null_sentinel; } // sentinel другого типа! }; // Использование const char* str = "hello"; for (char c : cstring_range{str}) { std::cout << c; // hello } ❗️Обрати внимание: begin() возвращает const char*, а end() — null_sentinel_t. Разные типы! Range-based for это разрешает ещё с C++17, а C++20 добавляет it != null_sentinel сам разворачивается в !null_sentinel.operator==(it). Пишешь один operator== — и обе стороны, и != работают бесплатно. ❓ Зачем вообще так заморачиваться 🥝 Ленивый конец. Не нужно звать strlen и проходить строку дважды — конец «находится» прямо во время итерации. ♾️ Бесконечные диапазоны. У генераторов, потоков, views::iota без верхней границы конца-позиции просто нет. Sentinel — единственный способ вообще описать такой диапазон. ⚡️ Дешёвое сравнение. Проверить условие (== '\0', счётчик дошёл до нуля) часто быстрее, чем сравнивать два итератора. 🥳 В стандартной библиотеке это уже есть Свой sentinel писать нужно не всегда. В STL живёт std::default_sentinel_t (объект std::default_sentinel) — та самая пустая заглушка, которой пользуются counted_iterator, istream_view и куча вьюх. А для честно бесконечных диапазонов есть std::unreachable_sentinel — «мы не доедем никогда», и компилятор с чистой совестью выкидывает проверки границ. 🫰 std::ranges поддерживает нестандартные sentinel-ы из коробки: достаточно, чтобы для пары <итератор, sentinel> выполнялся концепт std::sentinel_for — и твой тип поедет во все алгоритмы ranges наравне с обычными итераторами. 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом
Библиотека C/C++ разработчика | cpp, boost, qt
15.07.2026 18:46 · 👁 999
💡 Свой парсер C++ на самодельном DSL Компиляция большого C++ проекта разрастается до неприличных времён, но можно написать замену Clang/GCC/CL.EXE, начав с парсера. • Парсер не пишется руками: грамматика на своём языке QapDSLv2 • На выходе CST, а не AST — с пробелами и комментариями • Покрыто почти всё: 16 уровней приоритетов операторов, шаблоны, лямбды, структурное связывание. • Неоднозначности решены грубо: T<1>(2) всегда шаблон, struct S {...}; ❗️Автор честен: проект вот-вот упрётся в лимит памяти при собственной сборке и рискует тихо умереть, но с другой стороны со стороны погружения в тему интересен. Код открыт на GitHub. 🔥 Статья 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом
Библиотека C/C++ разработчика | cpp, boost, qt
15.07.2026 15:20 · 👁 1K
🍴 Rule of Zero: лучший Fab Four — тот, что ты не писал Идеальный класс не содержит ни одного из пяти методов. Это не лень — это архитектурный принцип, который снижает количество багов. 🍒 Rule of Zero Если каждое поле само корректно управляет своим ресурсом (std::string, std::vector, std::unique_ptr), то классу-агрегату не нужны свои Fab Four. Компилятор сгенерирует правильные почленные версии. struct User { std::string name; std::vector<int> scores; std::unique_ptr<Db> conn; }; // move + dtor — сгенерированы, корректны и БЕСПЛАТНЫ // copy — корректно УДАЛЁН: unique_ptr некопируем → User тоже (move-only тип) ❗️Почему работает: почленное перемещение вызовет move у каждого поля. string украдёт буфер, vector — массив, unique_ptr — указатель. Тебе не нужно писать ни строки. ❗️ Ключевое условие — не объявлять деструктор. И ~User(){}, и ~User() = default одинаково опасны: любой user-declared деструктор отключает неявную генерацию move. ✏️ Твои классы владеют new/delete напрямую — или прячут их в unique_ptr и живут по Rule of Zero? 📍Навигация: Вакансии • Задачи • Собесы Библиотека C/C++ разработчика #под_капотом
Библиотека C/C++ разработчика | cpp, boost, qt
15.07.2026 10:00 · 👁 985
🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться! Мы только начали, а первый практический воркшоп пройдет только 23 июля. До этого времени вы спокойно успеете изучить материалы и нагнать группу. 💼 Главная фишка: финальный проект в портфолио: В финальном проекте вы сможете выбрать один из двух вариантов: реализовать свою идею или решить задачу от партнера курса — крупной российской финтех-компании. Вы будете работать с датасетом, построенным по реальным сценариям, получите бизнес-контекст и продовые ограничения. В результате соберете AI-агента, который станет сильным проектом для портфолио. 🎁 Упомяните менеджеру специальное предложение «3 курса по цене 1»: Берете VIP-тариф — получаете курс «Разработка ИИ-агентов», хардкорный «AgentOps» и ещё один курс на выбор. Выгода 129.000 ₽! Двери потока вот-вот закроются окончательно. Успейте забрать стек курсов и начать работу над реальным проектом 🔗 Занять место и забрать 3 курса
Библиотека C/C++ разработчика | cpp, boost, qt
14.07.2026 19:40 · 👁 1K
🤖 У нас уже отобрали работу роботы или есть другие угрозы? Забудь про апокалиптичные прогнозы «AI отберет работу». Реальность интереснее и коварнее: появились новые правила игры, новые способы обмана заказчиков и новая ценность для тех, кто умеет думать головой. Разбираю пять таких сдвигов. 👉 Статья Азбука айтишника #свежак
Библиотека C/C++ разработчика | cpp, boost, qt
14.07.2026 15:34 · 👁 990
1 августа Яндекс проведет Back to Back — бэкенд- конференцию, которая пройдет в Москве, Белграде и Ереване Участников ждут инженерные доклады и разбор реальных production-проблем. В Москве состоится трек C++ Zero Cost — про производительность, системную разработку и инженерные задачи на C++, там же пройдет Architecture & Performance — про архитектуру, производительность и реальные production-задачи. На конференции выступят эксперты из Яндекса, Авито, Positive Technologies и других компаний. Что планируют в Москве: 🔅Новости со встречи Международного комитета C++ — про интересные возможности C++26, перспективы языка и планы на C++29 расскажет Антон Полухин из Яндекса 🔅9 миллиардов этажей concurrency — база про concurrency, parallelism и многопоточность от руководителя инфраструктуры поиска Авито Андрея Аксенов 🔅Сверлим дыры в луне: добавляем поддержку языка LuaJIT в eBPF-профилировщик Perforator — ограничения eBPF, сложность устройства LuaJIT и челленджи профилирования динамических языков от Саввы Лебедева из Positive Technologies Помимо докладов, в Москве участников ждут экспертные сессии 1:1 и выступление питерской группы «Научно-технический рэп» с хитами «Алкоритм», «Тыжпрограммист». Программа и регистрация — тут.
Библиотека C/C++ разработчика | cpp, boost, qt
14.07.2026 08:50 · 👁 990
🔥 Стартуем СЕГОДНЯ! Новый поток курса «Разработка ИИ-агентов» открыт По этому поводу мы решили выложить закрытую запись одного из уроков из программы. Найти её в поиске YouTube нельзя — она доступна только по ссылке и всем, кто будет на курсе. Внутри глубокий разбор LLM от Алексея Яндутова (Senior ML-инженер, развивал ответы «Алисы» и «Нейро» в Яндексе). Учимся получать точный результат без галлюцинаций. Что внутри урока: - Устройство LLM. - Рабочие шаблоны промптов (Persona, Chain-of-Thought и др.). - Разбор реального кейса Яндекса. Как автоматизировать разметку, обойти качество людей на 5% и срезать косты на 60%. После просмотра вы поймете, когда хватает промпт-инжиниринга, а когда нужен RAG или fine-tuning. 👉Смотреть закрытый урок на YouTube Понравился урок? Переходите на новый уровень! Оставляйте заявку на курс, чтобы научиться проектировать надежные автономные системы. Обучение началось, но вы еще успеваете присоединиться. 🔗 Занять место на курсе
Библиотека C/C++ разработчика | cpp, boost, qt
13.07.2026 17:16 · 👁 808
🧩 Терминал и оболочка — это не одно и то же Вы открываете «терминал», набираете ls — и кажется, что всё делает одна программа. На самом деле их две, и путаница между ними мешает понять половину советов из интернета. 📕 Терминал — это окно Изначально терминал был железкой: экран и клавиатура, подключённые проводом к большому компьютеру. Сегодня это программа-эмулятор (iTerm, Windows Terminal, Gnome Terminal), которая только принимает нажатия клавиш и рисует текст на экране. 🤖 Оболочка — это мозг Оболочка (shell) — программа, которая читает вашу команду, разбирает её и просит операционную систему запустить нужный процесс. Bash, Zsh, Fish — это всё оболочки, и они разные: команда, работающая в bash, может не завестись в fish. ⏳ Аналогия Терминал — как браузер, а оболочка — как сайт внутри него. Браузер рисует страницу, но логика живёт не в нём. ❓ Кто что делает при вводе команды Пока вы печатаете, оболочка ничего не знает — символы обрабатывает терминал. И только после Enter строка уходит в оболочку, которая решает, что с ней делать: выполнить встроенную команду вроде cd самой или запустить отдельную программу через ОС. ‼️ Пайпы — это работа оболочки Вертикальная черта склеивает процессы в цепочку: вывод одного сразу становится вводом другого, без временных файлов на диске. cat log.txt | grep ERROR | wc -l ⚠️ Частая ошибка: менять настройки терминала, когда проблема в оболочке (или наоборот). Не подхватился алиас — смотрите конфиг оболочки (.zshrc, .bashrc). Кривые цвета и эмодзи — это к терминалу. 🚨 Подкаст о терминалах и оболочках от Podlodka ✏️ А в чём вы открываете командную строку? ❤️ — в том, что был в системе 🤩 — поставил свой: iTerm, Alacritty, Ghostty, WezTerm и т.д. 🌚 — только внутри VS Code 🔥 — вообще не открываю терминал 👾 — Другое (напишу в комментариях) 🏃‍♀️ Азбука айтишника
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.