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

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

Учиться у нас: https://proglib.io/w/d6cd2932

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
⚡️ Фича дня: if consteval в C++23

Хотите разный код для compile-time и runtime? C++23 добавляет if consteval для условной компиляции!


🔴 До: Сложные трюки

template<typename T>
constexpr T compute() {
if (std::is_constant_evaluated()) {
return compile_time_version<T>();
}
return runtime_version<T>();
}



🟢 После: Читаемый consteval

template<typename T>
constexpr T compute() {
if consteval {
return compile_time_version<T>();
} else {
return runtime_version<T>();
}
}



❗️Практические применения:

• Оптимизированные математические библиотеки
• Compile-time криптография
• Генерация lookup-таблиц


💡Используете метапрограммирование в ваших проектах?

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3
✏️ Промпт дня: Следуй стандартам кода в C++

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


🍴 Промпт для AI-помощника:

Rewrite the code below following the Google style guidelines for C++.

[Вставь свой код]



‼️ Пример использования промпта:

Было:

class userManager{
public:
int getUserCount(){return userCount;}
void setUserCount(int count){userCount=count;}
private:
int userCount;
};

void ProcessUserData(){
const int maxUsers=100;
userManager um;
for(int i=0;i<maxUsers;i++){
um.setUserCount(i);
}
}


Стало (после применения Google C++ Style Guide):

class UserManager {
public:
int GetUserCount() const { return user_count_; }
void SetUserCount(int count) { user_count_ = count; }

private:
int user_count_;
};

void ProcessUserData() {
const int MAX_USERS = 100;
UserManager user_manager;

for (int i = 0; i < MAX_USERS; ++i) {
user_manager.SetUserCount(i);
}
}


Что изменилось:

Функции в CamelCase
Переменные в snake_case
Константы в UPPER_CASE
Правильные отступы и пробелы


⛄️ А каким стилем для кода вы пользуетесь? Пишите в комментариях.

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚10👍32🥰2
🌧️ Облачная терапия: время выговориться!

Знакомая ситуация? Покупаете облако как BMW, а получаете телегу с квадратными колесами. Обещают 99.9% uptime, а сервер падает на релизе. Техподдержка отвечает через сутки фразой «попробуйте перезагрузить».

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

🤫О чем спросим:
— Зачем вам вообще это облако нужно
— Какие косяки достали до печенок
— Сколько денег утекает в никуда ежемесячно
— Что должно случиться, чтобы вы сменили провайдера
— И еще пару каверзных вопросов

⏱️ 2 минуты честности = большое исследование без воды → https://clc.to/nboYDA
😎 Как начать писать свой проект на Unreal Engine 5

💡 Эта история — не просто дневник разработчика, а честный рассказ о боли, решимости и технических подводных камнях, с которыми сталкиваешься, когда решаешь написать свой VR-движок на UE5.

❗️Ключевые моменты:

• почему переход с Unity на Unreal не всегда гладкий
• как в одиночку освоить UE5 и C++ для написания плагинов
• какие возможности и ограничения есть у движка «из коробки»

Главный фокус — личный опыт перехода от Java и Unity к полному погружению в экосистему Unreal Engine с её модульной архитектурой, плагинами, Blueprints и C++.

❗️Пост особенно полезен разработчикам, кто:

• планирует создавать сложные системы на UE5
• хочет понять реальную стоимость «модульной архитектуры»
• интересуется плагинами и расширениями движка на C++

💬 Итог: Unreal мощный, но не идеальный.

👉 История

Библиотека C/C++ разработчика
👍52👏1
‼️ Hotkey boost: Генерация документации Doxygen одной командой

Проблема: Написание документации для C++ кода — трудоемкий процесс, который разработчики часто откладывают или вовсе пропускают.

Решение: Автоматическая генерация шаблонов документации Doxygen для классов и функций!


Доступно в:

• CLion: /** + Enter перед объявлением функции/класса
• VSCode (с Doxygen Documentation Generator): Ctrl+Alt+D
• Visual Studio: /// + Enter перед функцией


✏️ В CLion:

• Установите курсор перед объявлением функции или класса
• Введите /**
• Нажмите Enter
• IDE автоматически создаст шаблон документации со всеми параметрами.

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍32
🏃‍♀️ 1 день до конца спец предложения

У
спей впрыгнуть на курс «AI-агенты для DS» до завтрашнего повышения цены: 59.000 р. вместо 69.000 р.

🎙 Наш спикер — Никита Зелинский, Chief Data Scientist МТС, в своем канале рассказывает о RAG:

Про RAG слышали все — это уже два года самый массовый способ применения LLM в проде для бизнеса.

Это значит, что точность и надёжность такого решения достаточно предсказуемы для того, чтобы исключить человека из процесса аппрува выдачи LLM,
а связка «локально развернутая LLM + RAG над корпоративными документами» обеспечивает достаточную конфиденциальность, чтобы снять тревожность
«что наши данные попадут в OpenAI».

Эта история настолько популярна, что на рынке есть готовые RAG-решения,
а даже «маленькие» опенсорс-модели (до 5B) уже обзавелись своей RAG-ареной:
👉 https://huggingface.co/spaces/aizip-dev/SLM-RAG-Arena


Во время обучения на курсе «AI-агенты для DS» научим собирать автономные системы под реальные бизнес-задачи. На прошлой неделе мы рассказали о первом занятии.

➡️ вот что ждет слушателей курса на втором:

— Собираем свой RAG-пайплайн на своих данных
— Обсуждаем, почему качество такой системы нельзя измерять «на глаз»
— Разбираем схему LLM as a Judge и как подготовить для неё датасет
— Что такое guardrails и как они спасают от бреда
— Что делать, когда LLM не знает ответа
— Смотрим на агентский RAG и обсуждаем, можно ли использовать RAG как память агента

Если пропустили первое занятие, то вот ссылочка

❗️До повышения цены остался последний день — бронируйте место сейчас
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🌀🚀 Мастерство STL алгоритмов в C++

Устал писать циклы for для каждой мелочи? Стандартная библиотека C++ уже содержит все необходимые алгоритмы — оптимизированные, протестированные и готовые к бою. Время перестать изобретать велосипед и начать использовать силу STL на полную.

💡 На карточках — 5 категорий алгоритмов с примерами для мгновенного применения.

Библиотека C/C++ разработчика
👍122🥰1
😱 Завтра цена на курс «AI-агенты для DS» вырастет

Пока вы думаете — другие уже покупают. Что вы теряете, откладывая решение? Как минимум — 10 000 рублей, именно столько вы переплатите завтра. Как максимум — шанс войти в топ-1% дата-сайентистов, которые умеют строить AI-агенты.

🎓 Чему вы научитесь на курсе:
— адаптировать LLM под разные предметные области и данные
— собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества
— строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой

Решение за вами.

👉 Купить курс по старой цене
3
Загадка: Я рождаюсь без имени, живу без тела, умираю без памяти. Меня нельзя позвать, но я всегда прихожу. Что я такое?

😼 Ответ пиши в комментариях.

Библиотека C/C++ разработчика #междусобойчик
📰 Свеженькое из мира C++

Недельный дайджест новостей о разных аспектах программирования и интересных проектах в мире C++.

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

Следуй стандартам кода в C++ — приводим код к единому стилю с помощью одного промпта
Как начать писать свой проект на Unreal Engine 5 — дневник разработчика, или как вкатиться в UE5
Мастерство STL алгоритмов в C++ — набор полезных карточек с описанием алгоритмов

😎 Полезное:

Как правильно передать данные в std::thread — заметка о том как уменьшить головную боль при передачи данные в новый поток
Управление зависимостями на C++ с помощью vcpkg — создание полноценной экосистемы управления зависимостями на базе vcpkg
Генерация документации Doxygen одной командой — создаём документацию с помощью нажатия пары клавиш

🖨️Интересные проекты:

PPSSPP — быстрый и портативный эмулятор PSP
Tdesktop — полный исходный код и инструкции по сборке официального настольного клиента мессенджера Telegram

Библиотека C/C++ разработчика #свежак
👍51🥰1
🏖 Подборка вакансий для C++-разработчиков за неделю

Senior C++ Developer / Tech Lead — от 400 000 ₽ Гибрид (Москва)

Разработчик C++ — до 400 000 ₽ Гибрид, удалёнка (Москва)

Developer C++ (KasperskyOS, System services & drivers) — Удалёнка

Эксперт С++ в команду беспилотной технологии — Удалёнка

C++ developer / Инженер-программист C++ (KORNFELD) — Удалёнка (Санкт-Петербург)


➡️ Еще больше топовых вакансий — в нашем канале C++ jobs

Библиотека C/C++ разработчика
🔥5
🍩 C++ Concepts — типобезопасность на новом уровне


‼️ Проблема:

В шаблонах C++ ошибки типов приводят к критическим сообщениям компилятора на десятки строк. Отладка становится кошмаром, особенно для новичков в команде.


Решение:

C++ Concepts
позволяют явно указать требования к типам шаблонов. Это делает код самодокументируемым и дает понятные сообщения об ошибках.


✏️ Пример кода:
#include <concepts>

// Определяем концепт для числовых типов
template<typename T>
concept Numeric = std::integral<T> || std::floating_point<T>;

// Функция принимает только числовые типы
template<Numeric T>
T multiply(T a, T b) {
return a * b;
}

int main() {
auto result1 = multiply(5, 10); // OK: int
auto result2 = multiply(3.14, 2.0); // OK: double
// auto result3 = multiply("hello", "world"); // Ошибка компиляции с понятным сообщением
return 0;
}



🌳 Преимущества:

• Понятные сообщения об ошибках компиляции
• Самодокументируемый код с явными требованиями к типам
• Улучшенная производительность компиляции за счет раннего отсева неподходящих типов
• Возможность перегрузки функций на основе концептов

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🥰51