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

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

Kanalga Telegram’da o‘tish

Все самое полезное для плюсовика и сишника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/d6cd2932 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

Ko'proq ko'rsatish
2025 yil raqamlardasnowflakes fon
card fon
19 540
Obunachilar
-524 soatlar
-427 kunlar
-17730 kunlar
Postlar arxiv
Photo unavailableShow in Telegram
Перевод: Cуществует ли испанский язык программирования. Si++ (Да по испански) Библиотека C/C++ разработчика #буст
Hammasini ko'rsatish...
😁 20🥱 3💯 1
Какой подход к тестированию лучше?Anonymous voting
  • TDD - тесты сначала, код потом
  • Тесты после написания кода
  • Integration тесты важнее unit-тестов
  • Статический анализ вместо тестов
  • Компилируется = работает
0 votes
😁 23👍 2
Photo unavailableShow in Telegram
⚙️ Почему классический ООП тормозит игровые движки — и что с этим делать Обработка тысяч объектов в реальном времени превращается в кошмар с традиционным C++. Программист из Блэкхаб Геймс показывает, как Entity Component System решает проблемы производительности. 🧨 Что узнаешь из доклада: • Почему наследование и виртуальные таблицы убивают производительность при обработке тысяч сущностей • Как ECS разделяет данные и логику • Data-Oriented Design: как пулы компонентов улучшают кэш-локальность и позволяют использовать SIMD • Простая многопоточность без головной боли • Практическая реализация на библиотеке Flex с примерами кода • Почему доступ через ID лучше указателей в динамичных игровых сценах Доклад полезен не только геймдевам — ECS применяется в биржевых системах, симуляциях и везде, где нужна высокая производительность обработки данных. 👉 Видео Библиотека C/C++ разработчика #буст
Hammasini ko'rsatish...
4👍 1👏 1
Repost from TgId: 1194965543
🔥 6 горячих клавиш VS Code Горячие клавиши — добро, польза и экономия времени. Давайте разберёмся, как с их помощью упростить себе жизнь в Visual Studio Code. 1️⃣ Перейти к парной скобке Windows — Ctrl + Shift + \ macOS — Shift + Command + \ Когда кода становится много, очень просто запутаться в закрывающих и открывающих скобках, непонятно, где какой блок, и вообще, что происходит. На помощь приходит Ctrl + Shift + \ — это хорошее дополнение к стандартной подсветке парных скобок в VS Code. 2️⃣ Переименовать переменную Windows — F2 macOS — F2 Писали, писали, а старший разработчик пришёл и сказал, что ваши переменные a, b и c — дурной тон. Чтобы не выискивать их по всему документу и не менять руками, есть F2. 3️⃣ Отформатировать документ Windows — Shift + Alt + F macOS — Shift + Option + F VS Code предложит установить расширение или выбрать из существующих, а потом красиво отформатирует документ — расставит по местам блоки и скобки, сделает строки кода читаемыми. 4️⃣ Перейти к переменной Windows — F12 macOS — F12 Иногда вообще непонятно, откуда взялась переменная, какая у неё область видимости и где она объявлена. F12 перенесёт вас к объявлению выделенной переменной, функции или метода. Если объявление в другом файле — всё равно перенесёт. 5️⃣ Включить или выключить перенос слов Windows — Alt + Z macOS — Option + Z Если строки кода или текст не вмещаются в редактор по ширине, включите перенос. 6️⃣ Включить дзен-режим Windows — Ctrl + KZ macOS — Command + KZ Лучшее решение для тех, кто входит в состояние потока, когда пишет код. Дзен-режим скрывает все панели, разворачивает редактор на весь экран, и вы можете плыть в волнах кода и думать только о нём. Чтобы вернуться в реальный мир, нажмите Escape. 🐸 Библиотека мобильного разработчика #буст
Hammasini ko'rsatish...
👍 5🥰 1
Photo unavailableShow in Telegram
👾 AI-агенты — настоящее, о котором все говорят! Уже 3 октября стартует второй поток нашего нового курса «AI-агенты для DS-специалистов». Это продвинутая программа для тех, кто хочет получить прикладной опыт с LLM и решать сложные задачи. На обучении вы соберёте полноценные LLM-системы с учётом особенностей доменных областей, получите hands-on навыки RAG, Crew-AI / Autogen / LangGraph и агентов. 🎓 В рамках курса вы научитесь: 1️⃣ адаптировать LLM под разные предметные области и данные 2️⃣ собирать свою RAG-систему: от ретривера и реранкера до генератора и оценки качества 3️⃣ строить AI-агентов с нуля — на основе сценариев, функций и взаимодействия с внешней средой Научитесь применять похожие подходы в разных доменных областях, получите фундамент для уверенного прохождения NLP system design интервью и перехода на следующий грейд. 🗓️ Завтра первый вебинар, успевайте залететь в ряды ИИ-первопроходцев 👈🏻
Hammasini ko'rsatish...
🥱 5🔥 1😁 1
🔍 Промпт: Регулярные выражения в C++ Работаете с регулярками в C++ и запутались в std::regex? Есть простой лайфхак! ✏️ Используйте промпт
Write a regular expression that matches / Write a RegEx pattern for:

[ваше описание]
❗️ Пример использования Запрос: Email addresses with validation Получаем:
std::regex email_pattern(
    R"([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"
);
🔥 Что можно запрашивать ✅ Валидация email, телефонов, URL ✅ Извлечение данных из строк ✅ Поиск паттернов в логах ✅ Парсинг форматов файлов ✅ Проверка форматов дат/времени Библиотека C/C++ разработчика #буст
Hammasini ko'rsatish...
🔥 4👍 2
Repost from TgId: 1465826763
Photo unavailableShow in Telegram
📎 Где заказать курсовую по программированию Курсовую по программированию легко заказать онлайн — сервисов действительно много. Проблема в том, что не все они работают честно: бывает низкое качество, завышенные цены или несоблюдение сроков. По ссылке — подборка площадок, которые в 2025 году показали стабильный результат. ➡️ Узнать, где лучше 🐸 Библиотека Go-разработчика
Hammasini ko'rsatish...
3😁 1
Photo unavailableShow in Telegram
Перевод: Скажи 'привет' на родном языке Библиотека C/C++ разработчика #развлекалово
Hammasini ko'rsatish...
😁 17❤‍🔥 4
🔍 FuzzTest: Фреймворк для фаззинг-тестирования в C++ FuzzTest (от Google) — это библиотека для фаззинг-тестирования C++ кода. 🐼 Что это такое? FuzzTest — это фреймворк, который автоматически генерирует тысячи тестовых случаев для вашего кода, пытаясь найти крайние случаи, утечки памяти, крэши и другие баги. В отличие от классических unit-тестов, где вы вручную задаёте входные данные, фаззер делает это за вас. 🍴 Почему стоит использовать?
void MyTest(int x, const std::string& s) {
  EXPECT_TRUE(MyFunction(x, s));
}

FUZZ_TEST(MySuite, MyTest);
✅ Простой синтаксис ✅ Интеграция с GoogleTest ✅ Умная генерация данных — автоматически создаёт осмысленные входные данные для сложных типов: строк, контейнеров, структур ✏️ Пример использования
#include "fuzztest/fuzztest.h"

void ParseUrlTest(const std::string& url) {
  auto result = ParseUrl(url);
  // Проверяем, что не крашится на любых входных данных
  EXPECT_TRUE(result.has_value() || !result.has_value());
}

FUZZ_TEST(UrlParser, ParseUrlTest)
    .WithDomains(fuzztest::Arbitrary<std::string>());
‼️ Когда использовать? ✅ Парсеры и обработчики пользовательского ввода ✅ Сериализация/десериализация ✅ Криптографические функции ✅ Работа со сложными структурами данных ✅ API, которые должны быть устойчивы к любым входным данным 💌 Github Библиотека C/C++ разработчика
Hammasini ko'rsatish...
👍 11🤔 4 1
Photo unavailableShow in Telegram
🤖 Курс «ИИ-агенты для DS-специалистов» Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября! Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским. 📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой. 🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽. 🔗 Записаться на курс и узнать подробности
Hammasini ko'rsatish...
😁 1
👁 std::variant — типобезопасный union std::variant (C++17) — это union, который знает свой текущий тип и гарантирует безопасность. 🐤 Старый подход:
// C-style union — опасно!
union Data {
    int i;
    double d;
    char* str;
};

Data data;
data.i = 42;
std::cout << data.d; // ❌ Читаем не то, что записали
🐸 Современный подход:
std::variant<int, double, std::string> data;

data = 42;                    // Хранит int
data = 3.14;                  // Теперь хранит double
data = "hello";               // Теперь хранит string

// Безопасное получение значения
if (auto* val = std::get_if<int>(&data)) {
    std::cout << "int: " << *val << '\n';
}
🥨 Базовые операции:
std::variant<int, std::string, double> v;

// Установка значения
v = 100;
v = "text";
v.emplace<std::string>("constructed in place");

// Проверка текущего типа
std::cout << v.index(); // Индекс типа: 0, 1, или 2

if (std::holds_alternative<int>(v)) {
    std::cout << "Содержит int\n";
}

// Получение значения
try {
    auto val = std::get<int>(v); // Бросит std::bad_variant_access
} catch (const std::bad_variant_access&) {
    std::cerr << "Неверный тип!\n";
}

auto* ptr = std::get_if<std::string>(&v); // nullptr если не string
🐾 std::visit — главная фишка:
std::variant<int, double, std::string> v = 42;

// Обработка всех возможных типов
std::visit([](auto&& arg) {
    using T = std::decay_t<decltype(arg)>;
    
    if constexpr (std::is_same_v<T, int>) {
        std::cout << "int: " << arg << '\n';
    } else if constexpr (std::is_same_v<T, double>) {
        std::cout << "double: " << arg << '\n';
    } else {
        std::cout << "string: " << arg << '\n';
    }
}, v);
🍪 Перегруженный visitor (C++17 трюк):
cpptemplate<class... Ts>
struct overloaded : Ts... { 
    using Ts::operator()...; 
};

template<class... Ts>
overloaded(Ts...) -> overloaded<Ts...>;

// Элегантная обработка!
std::visit(overloaded{
    [](int i) { std::cout << "int: " << i << '\n'; },
    [](double d) { std::cout << "double: " << d << '\n'; },
    [](const std::string& s) { std::cout << "string: " << s << '\n'; }
}, v);
✏️ Пример: Обработка ошибок
template<typename T>
using Result = std::variant<T, std::string>; // Value или Error

Result<int> divide(int a, int b) {
    if (b == 0) return "Division by zero";
    return a / b;
}

auto result = divide(10, 0);
std::visit(overloaded{
    [](int value) { std::cout << "Result: " << value << '\n'; },
    [](const std::string& err) { std::cerr << "Error: " << err << '\n'; }
}, result);
❗️ Важно: std::variant никогда не пустой (кроме исключительных ситуаций). Первый тип должен быть конструируемым по умолчанию. ❗️std::any: Используйте std::variant когда набор типов известен. std::any — для действительно произвольных типов. Библиотека C/C++ разработчика #буст
Hammasini ko'rsatish...
👍 6🔥 4 2
Photo unavailableShow in Telegram
🤖 Курс «ИИ-агенты для DS-специалистов» Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте. 📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой. 🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽. 🔗 Записаться на курс и узнать подробности
Hammasini ko'rsatish...
😁 3
⚡️ Designated Initializers — именованная инициализация из C++20 Если устали помнить порядок полей в структурах и случайно их путать, то designated initializers могут решить эту проблему. Designated initializers позволяют инициализировать структуры по именам полей, делая код более читаемым и безопасным. ✏️ Синтаксис:
struct Point {
    int x, y, z;
};

Point p{.x = 10, .y = 20, .z = 30};
🍴 Примеры использования:
struct Config {
    std::string host = "localhost";
    int port = 8080;
    bool ssl_enabled = false;
    int timeout_ms = 5000;
};

// Указываем только нужные поля
Config cfg{
    .host = "example.com",
    .ssl_enabled = true
}; // port и timeout_ms получат значения по умолчанию
🍴 С вложенными структурами:
struct Database {
    std::string connection_string;
    int max_connections = 10;
};

struct AppConfig {
    Database db;
    std::string log_level = "INFO";
};

AppConfig config{
    .db = {.connection_string = "postgresql://...", .max_connections = 20},
    .log_level = "DEBUG"
};
🍴 Функции с множеством опций:
struct DrawOptions {
    bool fill = false;
    int line_width = 1;
    std::string color = "black";
    float opacity = 1.0f;
};

void draw_rectangle(int x, int y, int w, int h, DrawOptions opts = {}) {
    // implementation
}

// Явно указываем только нужные опции
draw_rectangle(10, 20, 100, 50, {
    .fill = true,
    .color = "red",
    .opacity = 0.8f
});
Библиотека C/C++ разработчика #буст
Hammasini ko'rsatish...
👍 10 4
Repost from TgId: 1940255915
Что выведет программа?Anonymous voting
  • 5 5 5
  • 0 5 0
  • Undefined behavior
  • 0 5 и непредсказуемое значение
  • Ошибка компиляции
0 votes
😁 7🥱 1👾 1
Repost from TgId: 1940255915
Photo unavailableShow in Telegram
Photo unavailableShow in Telegram
Hammasini ko'rsatish...
😁 19💯 3
Photo unavailableShow in Telegram
🔥 Сегодня последний день скидки! На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют работу Data Scientists и инженеров. Что тебя ждёт на курсе: ⚡️ создашь своего ИИ-агента с нуля ⚡️ соберёшь RAG-систему ⚡️ научишься адаптировать LLM под реальные данные бизнеса ⏳ До конца этого дня цена на курс 57 000 ₽. Уже завтра будет 69 000 ₽. Успевай записаться (используй промокод datarascals). 🔗 Записаться на курс
Hammasini ko'rsatish...
😁 4 1
Photo unavailableShow in Telegram
🚀 Всё о курсе «ИИ-агенты для DS-специалистов» ❓ Зачем нужны ИИ-агенты? Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений. ❓ Зачем мне курс? Курс отвечает на три ключевых вопроса: — Как построить собственную систему агентов с нуля? — Каким образом использовать RAG-подход для работы с корпоративными данными? — Как адаптировать LLM под реальные задачи бизнеса? ❓ Подходит ли это мне? Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам. Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке. ❓ Когда старт? Обучение начинается 3 октября.Сколько стоит? До 28 сентября действует скидка → 57 000 ₽ вместо 69 000 ₽ (промокод datarascals). 🔗 Описание программы и регистрация
Hammasini ko'rsatish...
😁 1
Photo unavailableShow in Telegram
📰 Свеженькое из мира C++ Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++. 😎 Полезное:std::type_identity — предотвращение template argument deduction • Pointer Tagging в C++ — искусство упаковки битов в указатель • Какой алгоритм поиска выбрать? — варианты алгоритмов для решения задач по поиску элементов • Error Handling в C++ — чек-лист для проверки кода на правильность обработки ошибок 🔥 Интересные проекты:Sunshine — игровой стриминговый сервис для Moonlight • Deskflow — бесплатное приложение с открытым исходным кодом для совместного использования клавиатуры и мыши • Abseil — коллекция C++-кода с открытым исходным кодом (совместимая с C++17), предназначенная для расширения стандартной библиотеки C++. Библиотека C/C++ разработчика #свежак
Hammasini ko'rsatish...
👍 2 1
Длинные или короткие имена функций/переменных?Anonymous voting
  • Длинные и описательные - самодокументируемый код
  • Короткие и ёмкие - меньше печатать
  • Зависит от области видимости
  • Как в стандартной библиотеке
  • Главное - не использовать однобуквенные
0 votes
😁 1