Библиотека C/C++ разработчика | cpp, boost, qt
17.1K subscribers
2.22K photos
73 videos
16 files
4.6K links
Все самое полезное для плюсовика и сишника в одном канале.

Как запустить своего ии-агента: https://clc.to/tvpmDQ

По рекламе: @proglib_adv

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

#WXSSA
Download Telegram
🤖 Используешь AI для написания кода? В Яндексе покажут, как применять AI для реальных задач разработки.

23 июня в 19:00 совместно с Яндексом проведём открытый урок «AI-инструменты в разработке: как писать код быстрее с помощью ассистентов».

Спикер — Ольга Лукьянова, руководитель команды поиска и навигации по коду в SourceCraft. Более 18 лет развивала инструменты для разработчиков в JetBrains и руководила разработкой IDE в Huawei.

Что получишь на уроке:

— поймёшь, как использовать AI-ассистентов и облачных агентов в работе;
— научишься быстрее разбираться в новых проектах и кодовой базе;
— узнаешь, какие задачи стоит отдавать AI и как получать качественный результат;
— увидишь полный workflow работы с AI: от постановки задачи до код-ревью.

На уроке — живой разбор реального проекта с кодом. Ольга покажет промпты из рабочих сценариев и ответит на ваши вопросы в Q&A.

⚠️ Количество мест ограничено

🗓️ Когда: 23 июня, 19:00 (МСК)

👉 Занять место на открытом уроке
👍2😁21
🐸 Подборка вакансий для C++-разработчиков за неделю

Backend Developer (Indexer) — от 12 500 и до 20 800 $ Удалёнка

Разработчик Rust/C++ — Удалёнка/Гибрид (Новосибирск)

C++ Developer — от 300 000 ₽ Удалёнка

Разработчик C++Удалёнка/Гибрид (Москва)

Junior C++ разработчик — от 150 000 и до 250 000 ₽ Гибрид (Санкт-Петербург)

Разработчик C — Офис/Удалёнка (Москва)


📍Навигация: ВакансииЗадачиСобесыКанал в Max

Библиотека C/C++ разработчика

#вакансии
👍2
☠️ Задача на выходные: std::thread, который убивает программу при выходе из функции

Маленькая безобидная функция создаёт std::thread, что-то делает и в конце — terminate() и аварийное завершение всего приложения. Без единого явного throw в коде.

void DoWork(bool earlyExitCondition) {
std::thread worker([]() {
Sleep(2000);
std::cout << "Done\n";
});

if (earlyExitCondition) {
return; // worker все ещё joinable!
}

worker.join();
}


Задача: объясни, почему деструктор std::thread вызывает std::terminate, если поток всё ещё joinable, и предложи паттерн, который защищает от этого на всех путях выхода из функции, включая исключения.


📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#междусобойчик
😁2
🤖 Мы тут подготовили небольшую игру по ИИ-агентам

В ней нужно собрать AI-агента на LangGraph: выбрать узлы, пройти развилки и запустить собственный workflow.

Никакой теории — сразу практика. Можно наглядно увидеть, как работают агентные системы, проверьте свои знания или показать другим как это всё работает 🔥

🎁 За прохождение получите персональную скидку на курс. Чем больше баллов наберете — тем больше будет скидка.

Плюс сейчас действует предложение: покупаешь 1 курс, получаешь еще 2 любых в подарок. Для этого надо будет оставить заявку на сайте академии после прохождения игры.

🚀 Собрать своего AI-агента
🥱5😁1
📰 Свеженькое из мира C++

Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.

😎 Интересное:

Свой malloc для ОС: от наивного списка до бинов — серия статей о написании своего аллокатора
EXPECT_DEATH не ловит исключение — разбираем как тесты обрабатывают падения
Hazard pointers без воды — разбор безопасного освобождения памяти в lock-free структурах
doctest: тесты прямо рядом с кодом — способ написания unit-тестов прямо в файле с бизнес логикой

📙 Ranges:

Проекции: Что такое проекция?

🔹📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#свежак
😁2
Уже сегодня в 19:00 (МСК) стартует наш открытый урок!

Знаем, летом хочется отложить учёбу на осень. Но пока остальные отдыхают 😅, мы предлагаем без лишней конкуренции прокачать свой workflow и начать закрывать тикеты в три раза быстрее.

Тема:
«AI-инструменты в разработке: пишем код быстрее»


Мы покажем живой разбор реального проекта: как с помощью AI-ассистентов мгновенно разбираться в чужой кодовой базе, искать нужные участки и собирать Pull Request. Только рабочие промпты, которые сэкономят вам часы рутины.

🎙 Спикер — Ольга Лукьянова, руководитель команды в SourceCraft (18+ лет развивала инструменты в JetBrains и Huawei).

👉 Узнать, как ускорить разработку с AI
🍕 Проекции на поля структур

В прошлый раз разобрались, что такое проекция и зачем она нужна. Теперь — самый частый сценарий на практике: структура с кучей полей, и алгоритмы хочется гонять по разным из них, не плодя лямбды.

struct Person {
std::string name;
int age;
double height;
};

std::vector<Person> people = {
{"Алиса", 30, 165},
{"Борис", 25, 180},
{"Виктор", 35, 175},
};



🤠 Одна структура — много ключей

Вся прелесть в том, что один и тот же контейнер крутим по любому полю — меняем только &Person::поле:

// по возрасту
std::ranges::sort(people, std::less{}, &Person::age);
// Борис(25), Алиса(30), Виктор(35)

// самый высокий
auto tallest = std::ranges::max_element(people, std::less{}, &Person::height);
std::cout << tallest->name; // Борис

// найти по имени
auto found = std::ranges::find(people, "Алиса", &Person::name);
std::cout << found->age; // 30


Указатель &Person::age годится в проекции, потому что алгоритм зовёт её через std::invoke, а тот превращает его в p.age. Проекцией может быть что угодно вызываемое.

Заметьте: max_element и find вернули итератор на целого Person. Проекция выбирает ключ, но на выходе всегда исходный элемент.

‼️ sort сортирует на месте. Гоняете сниппеты подряд по одному people — каждый следующий видит уже переставленный вектор (max_element/find это не волнует).


👑 Компаратор + проекция = направление + ключ

Проекция говорит «по какому полю», компаратор — «в каком порядке»:

// по убыванию роста
std::ranges::sort(people, std::greater{}, &Person::height);
// Борис(180), Виктор(175), Алиса(165)


std::lessstd::greater — перевернули порядок, поле не трогали.
Компаратор можно сократить до {}, но не выбросить совсем:

std::ranges::sort(people, {}, &Person::age);   // ок
std::ranges::sort(people, &Person::age); // не компилируется


Проекция — третий аргумент, поэтому без компаратора &Person::age уедет в его слот. {} этот слот занимает и подставляет дефолт — а дефолт тут std::ranges::less, не std::less (на наших данных без разницы).


📍Навигация: ВакансииЗадачи Собесы

Библиотека C/C++ разработчика

#константная_правильностьx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3👾1
🎮 Пишем игру на C++ и Qt с нуля

Серия для тех, кто хочет не читать про язык, а собрать рабочий проект — пусть и простой. 31 видео, от пустого окна до играбельного билда.

– Qt как обвязка: GUI, event loop и сигналы-слоты
– Низкий порог входа: рассчитано на тех, кто только осваивает C++
– Цельный результат: на выходе — законченная игра

👉 Плейлист


✏️ Подойдёт такой формат «учимся на проекте» для онбординга джунов, или для С++ полезнее сразу копать в стандарт и инструментарий?


📍Навигация: ВакансииЗадачи Собесы

Библиотека C/C++ разработчика

#свежак
14😁1
🐸 Подборка вакансий для C++-разработчиков за неделю

C++ Developer — Офис (Санкт-Петербург)

Программист С++ — Офис (Москва)

C++ RTOS (Networking) Developer — Удалённо

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#вакансии
😁2
👀 Умеете строить предсказуемую архитектуру с ИИ? Станьте спикером Proglib academy

Мы в Proglib.academy запускаем курс по Spec-Driven Development (SDD) — учим разработчиков управлять ИИ-агентами (Cursor, Copilot, Claude) через спецификации, контекст и тесты, чтобы не перепроверять за нейросетью каждую строку.

Для этого курса мы ищем классных спикеров-практиков.


➡️ Что требуется от вас?

BigTech бэкграунд: опыт работы разработчиком, тимлидом или архитектором в крупных технологических компаниях.
Опыт управляемой разработки с ИИ: вы на практике знаете, как встроить AI-инструменты в личный или командный workflow (от постановки задачи до ревью AI-кода).
Системный подход: умение превращать хаотичную генерацию кода в предсказуемый инженерный процесс (работа с архитектурой, чек-листами, легаси и покрытием тестами).

➡️ Что мы предлагаем?

● Достойную оплату за подготовку материалов и проведение занятий.
● Мощное продвижение личного бренда через медиаресурсы Proglib (наша аудитория — 1 млн+ айтишников).
● Возможность публиковать свои экспертные материалы и статьи на наших площадках.
● Доступ к сильному и закрытому профессиональному сообществу.

Также мы ищем консультанта программы.

Если вы практикующий эксперт и готовы помочь нам отвалидировать программу курса, дать рекомендации по актуальности тем и финальным результатам обучения — мы вас очень ждем.

➡️ Как с нами связаться:

Telegram: @alinaa_kh
E-mail: alina@proglib.io
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2👾1
This media is not supported in your browser
VIEW IN TELEGRAM
😋 Когда на собеседовании меня просят показать какую многозадачность я имел в виду в своём резюме.

📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#развлекалово
😁92
🍔 std::function — больше не дефолт. Знакомьтесь, std::copyable_function (C++26)

Если в новом коде ты по привычке тянешься к std::function — в C++26 для большинства случаев есть вариант лучше.

std::function живёт с C++11, но у него два врождённых дефекта. Первый — он раздувает бинарь. Второй, более коварный — дефект const-корректности: operator() помечен const, но при этом спокойно вызывает не-const operator() хранимого объекта. Починить нельзя — сломается ABI.

std::copyable_function — то, чем std::function должен был быть с самого начала: копируемый, const-корректный, поддерживает весь набор квалификаторов (const, noexcept, &/&&).


#include <functional>

// const здесь означает const на самом деле
std::copyable_function<int() const> f = [x = 42] { return x; };
int y = f(); // 42

// std::copyable_function<int() const> bad = [x=42]() mutable {...}; // mutable не пройдёт

std::copyable_function<void()> g; // пустой
// g(); // ⚠️ UB, а НЕ bad_function_call


‼️ Важный нюанс: вызов пустого copyable_function — это UB, а не исключение. Сделано осознанно, ради консистентности с остальной библиотекой.

⚠️ Не выкидывай std::function бездумно:
• у copyable_function нет target() / target_type() — никакой RTTI-интроспекции
• пустой вызов → UB вместо bad_function_call: ловившие исключение сломаются молча
• для стабильного ABI существующих интерфейсов std::function по-прежнему уместен


📍Навигация: ВакансииЗадачи Собесы

Библиотека C/C++ разработчика

#под_капотом
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🤖 Запускаем новый курс: «Spec-Driven Development»!

Всем надоело, что ИИ-агенты (Cursor, Claude) генерируют сотни строк хаотичного кода, который приходится переписывать. Дело не в нейросети, а в том, что вы заставляете её угадывать условия задачи.

На курсе вы освоите методологию SDD (Spec-Driven Development) — управление ИИ через спецификации (спеки) и тесты вместо «вайб-кодинга».

Как это работает?

До генерации кода вы фиксируете в спеке контракты, инварианты и граничные случаи. Документ четко определяет ЧТО делать, сводя лотерею в PR к нулю.

За 8 недель с экспертами из BigTech вы:

🔹 Встроите ИИ в личный или командный workflow.
🔹 Превратите генерацию кода в предсказуемый инженерный процесс.
🔹 Перестанете перепроверять за моделями каждую строчку.

📖 Полный разбор методологии с примерами и готовый промпт для генерации спеки — в нашей статье

👉 Освоить SDD и ускорить разработку
1👍1
🧁 У канала всё есть — кроме твоего буста

Лайк ставится за секунду и забывается. Буст — это другое. Это твой голос, который реально поднимает канал на новый уровень и открывает то, что без вас недоступно.

Думаешь, один голос ничего не решает? Решает. Каждый буст — это +1 к возможностям канала и +100 к полезному контенту для тебя.

Что ты разблокируешь

Сторис — формат коротких, но ценных находок, которые жалко прятать «в стол»:

• рабочие инструменты, которые экономят часы
• технические заметки на пару абзацев
• ссылки, которые хочется сохранить
• вопросы и задачки для программистов
• быстрые опросы, где решает большинство


⤵️ Кнопка буста — прямо под этим постом. Одно нажатие — и ты уже двигаешь канал вперёд. Поехали 🚀

➡️ Буст канала

Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1
🎬 Где ломаются архитектуры ИИ-агентов и как этого избежать: запись урока от Proglib.Academy и cloud․ru

Proglib.аcademy вместе с cloud․ru провели вебинар, где разобрали реальные боли проектирования автономных систем. Вы просили запись встречи — она уже в открытом доступе!

Что внутри:

— критерии выбора между одним агентом и мультиагентной системой;
— разбор популярных архитектурных ошибок;
— реальные ограничения современных ИИ-агентов;
— практические рекомендации по проектированию агентных систем.

👉 Посмотреть запись можно тут:
VK
YouTube