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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
💡Автор статьи погружается в создание текстовых приключенческих игр на языке C, объясняя преимущества инкрементальной разработки и особенности программирования в стиле «close to the metal».

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

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

Особенно полезно для программистов, знакомых с основами C и желающих применить свои знания в увлекательном проекте, или для тех, кто интересуется историей игровой разработки.
Вы узнаете, что даже в эпоху сложных 3D-игр, создание текстовых приключений с нуля может быть образовательным, увлекательным и развивающим опытом, позволяющим лучше понять основы программирования.

Библиотека C/C++ разработчика
🔥 IT Breaking Memes — 30 000 ₽ за самую смешную IT-новость

Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!

👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.

🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе

Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».

Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».

📅 Сроки: с 29 апреля по 11 мая включительно

Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8

Ждем ваших новостей!
🧠 Метапрограммирование с Boost: магия времени компиляции

Метапрограммирование в C++ — это написание кода, который будет выполняться на этапе компиляции.

В Boost есть несколько библиотек упрощающих эту задачу:

🧩 Boost.MPL
Библиотека для манипуляций с типами во время компиляции.

// Вычисление факториала при компиляции
using result = mpl::int_<factorial<5>::value>; // = 120


🧩 Boost.Type_traits
Определение и модификация свойств типов.

// Проверка, является ли тип целочисленным
static_assert(boost::is_integral<int>::value, "Must be integral");


🧩 Boost.Hana
Современное метапрограммирование для C++14/17.

// Преобразование кортежа типов в массив строк
constexpr auto types = hana::tuple_t<int, char, double>;
constexpr auto names = hana::transform(types, hana::typeid_);


Метапрограммирование помогает писать более обобщенный код, выполнять проверки на этапе компиляции и оптимизировать производительность!

Библиотека C/C++ разработчика #буст
🧙‍♂️ Атрибуты в современном C++

В C++11 и новее появились атрибуты — механизм, о котором многие забывают. Атрибуты позволяют передавать дополнительную информацию компилятору, не меняя семантику кода.

[[nodiscard]] int getValue() { return 42; }

void test() {
getValue(); // Предупреждение: результат функции не используется
}

class [[deprecated("Используйте новый API")]] OldClass {};

[[noreturn]] void throwError() { throw std::runtime_error("Ошибка"); }

// C++20: говорит компилятору, что код с [[likely]] будет выполняться чаще
void process(int* data) {
if (data) [[likely]] {
process_data(data);
} else [[unlikely]] {
handle_null();
}
}

Другие полезные атрибуты: [[maybe_unused]], [[fallthrough]], [[no_unique_address]] (C++20). Они делают код понятнее и помогают избежать ошибок😸

Библиотека C/C++ разработчика #буст
🌍💻 Сравнение найма IT-специалистов в Западной и Восточной Европе

Рынок IT-специалистов в Европе является одним из самых динамичных и конкурентных в мире. Западная и Восточная Европа представляют собой два уникальных «региона» с разными экономическими, культурными и образовательными особенностями, которые влияют на процессы найма IT-специалистов.

Цель данной статьи — провести сравнительный анализ подходов к найму IT-специалистов в этих европейских зонах, выделить ключевые различия и сходства.

👉 Читать статью

🐸 Библиотека мобильного разработчика

#cвежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Jank — функциональный язык для любителей Lisp и Clojure!

🔹 Что такое Jank?

Jank — это Lisp-подобный язык программирования, вдохновлённый Clojure, но с компиляцией в нативный код через LLVM. Он сочетает в себе мощь функционального программирования и производительность C++.

🔹 Почему стоит попробовать?

Близок к Clojure — если вы уже знакомы с Clojure, освоите Jank быстро
Нативная компиляция — LLVM бэкенд даёт хорошую скорость
Взаимодействие с C++ — можно легко интегрировать существующие библиотеки

Jank стремится быть хорошо совместимым с Clojure. В то время как хостом Clojure по умолчанию является JVM, а взаимодействие осуществляется с Java, хостом Jank является LLVM, а взаимодействие осуществляется с C++.

👉 Github

Библиотека C/C++ разработчика
💡 Статья Максима Белова на Хабре разбирает, почему чистый код — это не просто эстетика, а прагматичный подход к разработке, который экономит время и нервы всей команды.

❗️ Ключевые моменты статьи:
• Чистый код — это код, понятный людям, а не только компилятору
• Технический долг накапливается, как снежный ком, и усложняет поддержку проекта
• Принципы SOLID, DRY и KISS — основа для создания гибкой и поддерживаемой архитектуры

Основной фокус — как превратить «спагетти-код» в элегантное и читаемое решение, используя проверенные практики и инструменты.

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

Вы узнаете, что инвестиции в чистый код окупаются быстрее, чем кажется: проекты с высокой читаемостью содержат в 15 раз меньше дефектов, а их поддержка требует на 124% меньше времени.

Библиотека C/C++ разработчика
🔥 Vita3K — эмулятор PS Vita на C++: как это работает?

Проект Vita3K — это открытый эмулятор, написанный на C++, который позволяет запускать игры Sony PlayStation Vita на ПК.

🔧 Особенности

Производительность: Эмуляция требует точного и быстрого кода, а C++ дает низкоуровневый контроль над железом
• Кросс-платформенность: Благодаря CMake и стандартам C++, проект собирается под Windows, Linux и macOS
Оптимизация: Использование многопоточности, SIMD-инструкций (SSE, AVX) и Vulkan/DirectX для рендеринга

💡 Интересные технические детали:

HLE (High-Level Emulation): Эмуляция системных вызовов вместо точного воспроизведения железа
• JIT-компиляция: Для ускорения выполнения ARM-кода на x86 CPU
OpenGL/Vulkan: Рендеринг графики с поддержкой шейдеров

👉 Официальный сайт
👉 Github

Библиотека C/C++ разработчика
🔥 Конкурс: 30 000 ₽ за самую смешную IT-новость

Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.

👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.

🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе

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

📅 Сроки: прием новостей до 11 мая включительно

Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8

Осталась неделя — ждем ваших новостей!
📌 C++26 — предварительный релиз

Что нового:
Pack Indexing: Теперь можно обращаться к элементам параметрических паков с помощью знакомого синтаксиса args[0], упрощая работу с шаблонами
std::execution (Senders/Receivers): Новая модель асинхронного программирования, позволяющая строить эффективные и безопасные параллельные приложения
Контракты и Рефлексия: Введение контрактов для явного определения предусловий и постусловий функций, а также рефлексии для анализа структуры программ на этапе компиляции
Stackful Coroutines: Поддержка корутин с собственным стеком, упрощающая написание асинхронного кода в линейном стиле

Зачем это:
C++26 обещает сделать язык более выразительным и удобным для разработчиков, особенно в области асинхронного и параллельного программирования

📌 GCC 15

Что нового:
• Поддержка ключевых фич C++23 и экспериментальных возможностей C++26
• Улучшения в работе с модулями и шаблонами
• Оптимизации компиляции и диагностики

Зачем это:
GCC 15 предоставляет разработчикам инструменты для опробования и внедрения новых возможностей C++, обеспечивая плавный переход к будущим стандартам

🔍 Какой релиз вы ждете больше всего? Поделитесь в комментариях!

Библиотека C/C++ разработчика