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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
June 13
June 13
😱 Завтра цена на курс «AI-агенты для DS» вырастет

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

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

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

👉 Купить курс по старой цене
June 14
June 14
June 15
June 16
🍩 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
June 17
June 17
June 17
June 17
📦 Создание модулей C++20 для быстрой компиляции

Modules — это будущее организации C++ кода.


❗️ Проблема:

Медленная компиляция из-за #include файлов.


Решение:

1️⃣ Создайте module interface файл
2️⃣ Экспортируйте нужные декларации
3️⃣ Импортируйте модуль в коде

// math_utils.ixx
export module math_utils;

export namespace math {
int add(int a, int b) {
return a + b;
}

double sqrt_approx(double x) {
return x / 2.0; // Упрощенная версия
}
}

// main.cpp
import math_utils;
#include <iostream>

int main() {
std::cout << math::add(3, 4) << std::endl;
return 0;
}


Частые ошибки:

Забывать ключевое слово export для публичных функций.


💡 Совет:

Modules работают не во всех компиляторах — проверяйте поддержку!

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