Библиотека C/C++ разработчика | cpp, boost, qt
Open in Telegram
Все самое полезное для плюсовика и сишника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/d6cd2932 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Show more2025 year in numbers

19 531
Subscribers
-724 hours
-417 days
-18530 days
Posts Archive
✏️ Промпт дня: Улучшение обработки ошибок
Обработка ошибок — один из самых критичных аспектов разработки на C++. Неправильная обработка исключений может привести к утечкам памяти, неопределенному поведению и краху приложения.
☀️ Решение с помощью AI
Для улучшения системы обработки ошибок в вашем коде используйте следующий промпт:
How can I improve the error handling in my C++ code? [ВАШ КОД]🧋 Пример трансформации До:
int divide(int a, int b) {
return a / b; // Деление на ноль = краш
}
std::vector<int> readFile(const std::string& filename) {
std::ifstream file(filename);
std::vector<int> data;
int value;
while (file >> value) {
data.push_back(value);
}
return data; // Что если файл не открылся?
}
После (с улучшенной обработкой ошибок):
#include <stdexcept>
#include <optional>
std::optional<int> divide(int a, int b) {
if (b == 0) {
return std::nullopt;
}
return a / b;
}
std::vector<int> readFile(const std::string& filename) {
std::ifstream file(filename);
if (!file.is_open()) {
throw std::runtime_error("Cannot open file: " + filename);
}
std::vector<int> data;
int value;
while (file >> value) {
data.push_back(value);
}
if (file.bad()) {
throw std::runtime_error("Error reading file: " + filename);
}
return data;
}
✏️ Как часто в вашем коде встречаются необработанные ошибки? Пишите в комментариях.👍 3❤ 1🤔 1
🧨 C++26 улучшает форматирование чисел
«Почему std::to_string выводит -0.000000 вместо -1e-7? И как C++26 это исправляет!» — такие вопросы часто возникают у разработчиков, работающих с форматированием чисел в C++.💡 В статье рассматриваются ключевые улучшения std::format в C++26, которые делают работу с форматированием более безопасной, удобной и предсказуемой. ❗ Ключевые моменты статьи: • Замена sprintf на std::format в std::to_string для более точного вывода чисел; • Компиляция проверок типов в std::format, что уменьшает количество runtime-ошибок; • Новые возможности форматирования указателей, включая нулевое заполнение и выбор регистра. Основной фокус — на практических улучшениях, которые уже доступны в GCC, Clang и MSVC, и их влиянии на существующий код. Особенно актуально для C++ разработчиков, которые работают с форматированием строк, выводом данных или оптимизацией производительности. Вы узнаете, как простые изменения в C++26 могут сэкономить ваше время и избавить от скрытых багов, связанных с локалями и неочевидным поведением старых функций. И это только первая часть обновлений — впереди ещё больше улучшений! 👉 Статья Библиотека C/C++ разработчика
🤩 3❤ 1🙏 1
00:06
Video unavailableShow in Telegram
C++ Zero Cost Conf — 2 августа Яндекс проведет прикладную конференцию для C++ специалистов.
Присоединяйтесь онлайн (Москва/Белград) или офлайн (Москва, СПб, Белград), чтобы послушать о реальных кейсах от практикующих C++ разработчиков.
В программе докладов:
— C++20 Модули — практическое внедрение. Антон Полухин (Яндекс) разберет, как использовать C++20 модули в больших существующих проектах с поддержкой старых стандартов на примерах Boost, libstdc++ и libc++.
— Hardening: текущий статус и перспективы развития. Роман Русяев и Юрий Грибов (Huawei) расскажут о средствах защиты критического ПО от UB в проде, их эффективности и влиянии на развитие C++.
— i, j, k и шаблоны: вспоминаем линейную алгебру вместе с Ваней Ходором (Яндекс).
Зарегистрироваться и посмотреть полную программу выступлений можно на сайте.
IMG_8485.MP42.15 MB
❤ 5👍 2👏 2
Photo unavailableShow in Telegram
⏰ std::chrono — работа со временем
Используете time_t и clock() для измерения времени?
std::chrono в C++11 предоставляет типобезопасную работу со временем. Высокая точность, читаемый код и портабельность.
👉 Подключение:
#include <chrono>
using namespace std::chrono;
💡 Примеры использования:
auto start = high_resolution_clock::now();
expensive_operation();
auto end = high_resolution_clock::now();
auto duration = duration_cast<milliseconds>(end - start);
std::cout << "Operation took: " << duration.count() << "ms" << std::endl;
std::this_thread::sleep_for(seconds(2)); // Спать 2 секунды
std::this_thread::sleep_for(milliseconds(500)); // Спать 500 мс
std::this_thread::sleep_for(2s); // C++14 literals
Основные типы:
— duration для промежутков времени
— time_point для моментов времени
— clock для источников времени
Часы (clocks):
— system_clock системное время
— steady_clock монотонное время
— high_resolution_clock наивысшая точность
Единицы времени:
— nanoseconds, microseconds, milliseconds
— seconds, minutes, hours
— Пользовательские единицы
Библиотека C/C++ разработчика #буст🔥 11
🏖️ Подборка вакансий для C++-разработчиков за неделю
Senior С++ Developer (KPHP) — от 300 000 и до 450 000 ₽ Удалёнка
Разработчик SIP-сервисов — от 350 000 и до 460 000 ₽ Удалёнка
Programmer C++ — 185 000 ₽ Гибрид (Санкт-Петербург)
Developer C++ (KasperskyOS, System services & drivers) — 190 000 ₽ Удалёнка
Библиотека C/C++ разработчика
Photo unavailableShow in Telegram
🔥 Вы ещё можете застать старый добрый Proglib — с вечным доступом к курсам.
С 1 августа всё меняется: навсегда — останутся только те, кто успел купить сейчас.
-40% на все курсы. Включая обновлённый Python (кроме курса по AI-агентам)
Это не просто распродажа. Это — последняя точка входа в Proglib Academy по старым правилам.
📚 Выбрать и забрать свой курс навсегда → https://clc.to/TBtqYA
❤ 1
Repost from TgId: 1940255915
Что выведет программа?Anonymous voting
- Timer created Widget created
- Timer created
- Widget created
- Ничего не выведет
- Ошибка компиляции
😢 12👾 7⚡ 3😁 2❤ 1
Repost from TgId: 1940255915
Photo unavailableShow in Telegram
Photo unavailableShow in Telegram
⚡ Релиз easyoffer 2.0 — сайта по подготовке к IT собеседованиям!
Разработку проекта поддержали 1600 айтишников, а суммарно на запуск было собрано 5 млн. руб. через краудфандинг.
«Всё в одном» для тех, кто ищет работу в IT:
🟢Аналитика собесов на основе 4500+ реальных интервью
🟢Вопросы и задачи из собеседований с вероятностью встречи
🟢Примеры видео-ответов от Senior/Middle разработчиков
🟢Тренажеры для подготовки
🟢Автоотклики на вакансии и другое.
В честь релиза первые 500 пользователей получат скидку 60% на годовой PRO-доступ
⚠ Что нужно сделать:
🔔 Подпишитесь на Telegram-канал проекта
https://t.me/+UYkjii31QQozZjgy Там появится анонс релиза раньше, чем где-либо ещё. Вы успеете попасть в число первых 500 и получить максимальную выгоду.
Реклама. ИП Кивайко Алексей Викторович, ИНН 532121460552. Erid 2VtzqvmGkoZ
Photo unavailableShow in Telegram
📰 Свеженькое из мира 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
Что выведет программа?Anonymous voting
- 42 1
- 0 0
- 0 1
- 42 0
- Исключение
Photo unavailableShow in Telegram
🌀 Ranges: революция или переоценённая фича?
«Все эти😼А вы уже переписали свой production код на ranges? Библиотека C/C++ разработчикаpipeоператоры иlazy evaluationвыглядят круто в демо, но в реальных проектах я вижу только оверхед и нечитаемый код. Может быть, старые добрые STL алгоритмы были лучше? Или мы просто боимся изучать новое?»
🔥 Знакомьтесь, преподаватель нашего нового курса по ML — Мария Жарова.
В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️
А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.
👉 Записывайтесь на курс
❤🔥 1
Photo unavailableShow in Telegram
Библиотека C/C++ разработчика #развлекалово
😢 8🥱 5❤ 2👍 1🌚 1
Photo unavailableShow in Telegram
🧨 Реализация мониторинга ресурсов в Windows
Хотел бы в Windows что-то похожее на Polybar из Linux, но готовых решений нет...💡 Автор статьи решил не искать готовые аналоги, а написать собственную программу на C++ для мониторинга системных ресурсов прямо в панели задач Windows. ❗ Ключевые моменты статьи: • использование структуры
NOTIFYICONDATA для создания иконок в системном трее
• реализация параллельных таймеров для независимого обновления данных CPU и RAM
• динамическое изменение цвета иконок в зависимости от загрузки системы
Основной фокус — практическая реализация системного мониторинга с использованием Windows API и создание удобного интерфейса для отслеживания производительности.
Особенно полезно для разработчиков, которые хотят создавать собственные утилиты для мониторинга системы и изучать работу с Windows API.
Вы узнаете, что создание собственных системных утилит не так сложно, как кажется, и сможете адаптировать код под свои потребности.
Библиотека C/C++ разработчика🔥 6❤ 2👍 2
Photo unavailableShow in Telegram
🤖 Знаете, чем настоящий AI отличается от чат-бота?
Чат-бот просит перезагрузить роутер, а настоящий AI уже умеет читать ваши эмоции в чате, включать музыку под ваше настроение, контролировать погрузку руды с точностью Терминатора и даже находить на КТ-снимках то, чего не заметит человеческий глаз.
Современные компании для таких задач всё чаще используют Deep Learning — алгоритмы на основе нейросетей. Но чтобы попасть в эту лигу, нужен фундамент. И имя ему — Machine Learning.
Наш новый курс по ML — это не волшебная таблетка. Это честный и структурированный путь в мир Data Science. Мы дадим вам базу, с которой вы:
✅ разберётесь, как мыслят машины (спойлер: матрицами!);
✅ научитесь строить работающие модели, а не карточные домики;
✅ получите трамплин для прыжка в Deep Learning.
Хватит смотреть, как другие запускают ракеты. Пора строить свой собственный космодром.
Начните с фундамента на нашем курсе по Machine Learning!
❤ 3😁 2
⚡️ Фича дня: 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++ разработчика #буст🔥 3
