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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
🌲 Концепты в C++

Хотите безопасную сериализацию? Создайте концепт для проверки того, что тип можно сериализовать и десериализовать.


✏️ Создание концепта:

1️⃣ Определите требования к типу
2️⃣ Проверьте наличие методов
3️⃣ Используйте в шаблонах


#include <concepts>
#include <iostream>
#include <string>
#include <sstream>

// Концепт для сериализуемых типов
template<typename T>
concept Serializable = requires(T obj, std::ostream& os, std::istream& is) {
{ obj.serialize(os) } -> std::same_as<void>;
{ T::deserialize(is) } -> std::same_as<T>;
};

// Пример сериализуемого класса
struct Person {
std::string name;
int age;

void serialize(std::ostream& os) const {
os << name << " " << age;
}

static Person deserialize(std::istream& is) {
Person p;
is >> p.name >> p.age;
return p;
}
};

// Функция для работы с сериализуемыми объектами
template<Serializable T>
void save_and_load(const T& obj) {
std::stringstream ss;

// Сериализация
obj.serialize(ss);
std::cout << "Serialized: " << ss.str() << std::endl;

// Десериализация
T loaded = T::deserialize(ss);
std::cout << "Deserialized successfully" << std::endl;
}

// Использование
void example() {
Person p{"Alice", 25};
save_and_load(p); // Работает

// save_and_load(42); // Ошибка компиляции
}



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

Забывают про static методы в концептах
Не учитывают const-correctness
Создают слишком жёсткие требования


⛄️ Практический совет:

Концепты помогают создавать self-documenting API и ловить ошибки на этапе компиляции.

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
😼 Три совета, как не выучить C++ за 21 день

💡Сотрудник из компании МойОфис делится субъективным, но честным гайдом о том, как правильно подойти к изучению C++ и не сгореть в процессе.

❗️ Ключевые моменты статьи:

• сначала поймите, действительно ли вам нужен C++ или это просто хайп
• лучший способ начать — курс лекций Константина Владимирова (МФТИ)
• найдите опытного ментора и активно участвуйте в комьюнити

Основной фокус — практический подход к изучению через книги (Страуструп vs C++ Primer), написание собственных проектов и постепенное углубление в специализированные области.
Особенно актуально для студентов технических вузов и тех, кто хочет перейти от учебных задачек к коммерческой разработке.

Автор честно предупреждает: изучение C++ — это не гонка, а долгое путешествие. Попытки «схватить всё и сразу» приведут только к выгоранию и разочарованию вместо уверенных знаний языка.

👉 Статья

Библиотека C/C++ разработчика
🔥123🥱3👍2🤩2
🌚 Стандартная библиотека C++ — это сплошные костыли и велосипеды, пора от неё избавиться?

💡 Автор статьи пошёл дальше критики и создал собственную библиотеку, которая заменяет стандартную библиотеку C++ с нуля.

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

• замена std::tuple на альтернативу с операциями нарезки и мутации
• best::variant вместо std::variant с поддержкой совмещения
• best::result как аналог Rust's Result<T, E> для обработки ошибок

Основной фокус — создание современной библиотеки, которая использует метапрограммирование, улучшенные контейнеры и новую парадигму итерации на основе Rust Iterator.

Особенно актуально для разработчиков, которые устали от многословности стандартных алгоритмов и хотят более элегантный API для работы с контейнерами и обработкой ошибок.
Автор доказывает, что можно создать библиотеку, которая превосходит даже Google Abseil, используя современные возможности языка и отказавшись от legacy-решений стандартной библиотеки.

👉 Статья

Библиотека C/C++ разработчика
😁123🔥1🥰1
🤩 Встречайте ImHex!

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


❗️ImHex — это современный hex-редактор, который понимает ваши боли:

▶️ Умное распознавание форматов — автоматически определяет структуру файлов
▶️ Визуализация данных — графики и цветовая подсветка вместо серых байтов
▶️ Встроенный дизассемблер — поддержка множества архитектур (ARM, x86, даже MOS 6502!)
▶️ LLVM-декомпилятор — разбирает искажённые имена символов
▶️ Процессор данных — режет и склеивает бинарники как профи
▶️ Кроссплатформенность — работает везде, где есть C++

Бесплатный, open-source, с активным комьюнити. Идеально для reverse engineering и системного программирования.

👉 Видео

Библиотека C/C++ разработчика
🔥10❤‍🔥32💯1
⚡️ Фича дня: std::views::transform

🐼 Проблема:

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


✏️ Решение:

views::transform создает ленивое представление с трансформацией на лету.

🔴 До:
cppstd::vector<std::string> strings;
for (const auto& num : numbers) {
strings.push_back(std::to_string(num));
}


🟢 После:
auto string_view = numbers | std::views::transform([](int x) { 
return std::to_string(x);
});



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

- Преобразование данных в конвейерах
- Форматирование без промежуточных контейнеров
- Цепочки трансформаций

⚡️ Используете transform views для оптимизации?

Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
🤖 Знаете, чем настоящий AI отличается от чат-бота?

Чат-бот просит перезагрузить роутер, а настоящий AI уже умеет читать ваши эмоции в чате, включать музыку под ваше настроение, контролировать погрузку руды с точностью Терминатора и даже находить на КТ-снимках то, чего не заметит человеческий глаз.

Современные компании для таких задач всё чаще используют Deep Learning — алгоритмы на основе нейросетей. Но чтобы попасть в эту лигу, нужен фундамент. И имя ему — Machine Learning.

Наш новый курс по ML — это не волшебная таблетка. Это честный и структурированный путь в мир Data Science. Мы дадим вам базу, с которой вы:

разберётесь, как мыслят машины (спойлер: матрицами!);

научитесь строить работающие модели, а не карточные домики;

получите трамплин для прыжка в Deep Learning.

Хватит смотреть, как другие запускают ракеты. Пора строить свой собственный космодром.

Начните с фундамента на нашем курсе по Machine Learning!
3😁2
🧨 Реализация мониторинга ресурсов в Windows

Хотел бы в Windows что-то похожее на Polybar из Linux, но готовых решений нет...


💡 Автор статьи решил не искать готовые аналоги, а написать собственную программу на C++ для мониторинга системных ресурсов прямо в панели задач Windows.

❗️ Ключевые моменты статьи:

• использование структуры NOTIFYICONDATA для создания иконок в системном трее
• реализация параллельных таймеров для независимого обновления данных CPU и RAM
• динамическое изменение цвета иконок в зависимости от загрузки системы

Основной фокус — практическая реализация системного мониторинга с использованием Windows API и создание удобного интерфейса для отслеживания производительности.

Особенно полезно для разработчиков, которые хотят создавать собственные утилиты для мониторинга системы и изучать работу с Windows API.

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

👉 Статья

Библиотека C/C++ разработчика
🔥62👍2
🔥 Знакомьтесь, преподаватель нашего нового курса по ML — Мария Жарова.

В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️

А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.

👉 Записывайтесь на курс
❤‍🔥1
🌀 Ranges: революция или переоценённая фича?

«Все эти pipe операторы и lazy evaluation выглядят круто в демо, но в реальных проектах я вижу только оверхед и нечитаемый код. Может быть, старые добрые STL алгоритмы были лучше? Или мы просто боимся изучать новое?»


😼А вы уже переписали свой production код на ranges?

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

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

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

Три совета, как не выучить C++ за 21 день — советы по изучению C++
Стандартная библиотека C++ — это сплошные костыли и велосипеды, пора от неё избавиться? — критика стандартной библиотеки и способы реализации своей универсальной библиотеки
Реализация мониторинга ресурсов в Windows — пример реализации своего мониторинга ресурсов

😎 Полезное:

Сериализация с использованием концептов — использование концептов для безопасной сериализации
std::views::transform — универсальный способ трансформации элементов контейнеров

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

ImHex — современный hex-редактор
cpp-httplib — кроссплатформенная header-only HTTP/HTTPS-библиотека реализованная на C++11
MLX — это фреймворк для машинного обучения на базе микросхем Apple Silicon

Библиотека C/C++ разработчика
2
Релиз easyoffer 2.0 — сайта по подготовке к IT собеседованиям!

Разработку проекта поддержали 1600 айтишников, а суммарно на запуск было собрано 5 млн. руб. через краудфандинг.

«Всё в одном» для тех, кто ищет работу в IT:
🟢Аналитика собесов на основе 4500+ реальных интервью
🟢Вопросы и задачи из собеседований с вероятностью встречи
🟢Примеры видео-ответов от Senior/Middle разработчиков
🟢Тренажеры для подготовки
🟢Автоотклики на вакансии и другое.

В честь релиза первые 500 пользователей получат скидку 60% на годовой PRO-доступ

Что нужно сделать:

🔔 Подпишитесь на Telegram-канал проекта
https://yangx.top/+UYkjii31QQozZjgy Там появится анонс релиза раньше, чем где-либо ещё. Вы успеете попасть в число первых 500 и получить максимальную выгоду.

Реклама. ИП Кивайко Алексей Викторович, ИНН 532121460552. Erid 2VtzqvmGkoZ
Please open Telegram to view this post
VIEW IN TELEGRAM