cpluspluc | Unsorted

Telegram-канал cpluspluc - C++ Academy

16151

По всем вопросам- @haarrp @itchannels_telegram - 🔥 best it channels РКН: clck.ru/3FmxJF

Subscribe to a channel

C++ Academy

🧩 ACAV: Интерактивный просмотр AST для C/C++ проектов

ACAV (Aurora Clang AST Viewer) — это настольное приложение для визуализации абстрактных синтаксических деревьев (AST) в проектах на C, C++ и Objective-C. Оно позволяет пользователям исследовать представление исходного кода Clang, перемещаться между местоположениями кода и узлами AST, а также изучать структуру программ.

🚀 Основные моменты:
- Интерактивная визуализация AST для языков семейства C.
- Двусторонняя навигация между исходным кодом и узлами AST.
- Просмотр файлового дерева для исходных файлов и заголовков.
- Поиск по исходному коду и узлам AST.
- Поддержка нативных и контейнеризованных рабочих процессов для macOS и Linux.

📌 GitHub: https://github.com/uvic-aurora/acav

#cpp

Читать полностью…

C++ Academy

🖥 Курс «Git Pro: от первого коммита до уровня senior» - на Stepik

project_final_v2_FINAL_truly_final - знакомо?

Значит, пора.

Большинство разработчиков знают 5 команд Git и боятся шестую. Коммитят в main, гуглят «how to undo» и копируют папку «на всякий случай».

Это не работа - это выживание.

После курса вы:
— делаете rebase, не задерживая дыхание;
— разбираете конфликт на 200 файлов по алгоритму;
— возвращаете «потерянные навсегда» коммиты за 30 секунд через reflog;
— пишете историю, которую не стыдно показать на code review.
Git Flow, trunk-based, Pull Request, защита веток, CI/CD-хуки — всё, что отличает джуна от senior в командной работе.

Скидка 53%, 48 часов: https://stepik.org/course/284799/

Читать полностью…

C++ Academy

🚁Высокопроизводительная библиотека H.A.L.O. для автономных дронов

H.A.L.O. Aegis Omniverse - это библиотека на C++20, предназначенная для навигации и защиты автономных спасательных дронов в сложных условиях. Она сочетает в себе передовые методы поиска пути и тактическое избегание препятствий с реакцией менее чем за наносекунду.

🚀 Основные моменты:
- Высокая производительность с использованием JPS+ для навигации.
- 10-слойная система защиты для мгновенного реагирования.
- Оптимизация под ARM NEON и SSE4 для максимальной скорости.
- Открытый исходный код для гуманитарных миссий.

📌 GitHub: https://github.com/Nguyenidkskibidi/halo-aegis-core

#cpp

Читать полностью…

C++ Academy

🎨✨ FusionUI: современная библиотека UI на C++23

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

🚀Основные моменты:
- Декларативные виджеты с типобезопасными стилями
- Поддержка анимаций и переходов
- Отсутствие глобального состояния для изоляции приложений
- Легкая интеграция с Vulkan и SDL3
- Кроссплатформенная: Windows, macOS, Linux

📌 GitHub: https://github.com/neilmewada/FusionUI

#cpp

Читать полностью…

C++ Academy

Когда работаешь с большим количеством данных, становится понятно, насколько важна продуманная инфраструктура. На митапе Максим Бабенко, руководитель разработки YTsaurus и преподаватель ШАДа и ВШЭ, рассказал о том, как платформа помогает решать такие задачи.

Команда проделала большую работу, чтобы YTsaurus можно было использовать как инфраструктуру для запуска GPU-вычислений. За последний год:

- добавили поддержку GPU в k8s, доработали планировщик и сделали API для распределённого чтения и записи датасетов
- добавили row-level security, constraints
- продолжили развивать инструменты мониторинга и сервисы для администрирования

Читать полностью…

C++ Academy

❤️ Backend Talks от Яндекс 360 — конференция о разработке, технологиях и будущем

Инженеры Яндекс 360 каждый день строят высоконагруженные отказоустойчивые и масштабируемые системы, которые выдерживают больше 1 000 000 RPS: Диск, Телемост, Почту и другие цифровые сервисы.


16 мая они собирают единомышленников — опытных специалистов, для которых работа с высокими нагрузками давно стала повседневной практикой. Будет живая среда для обмена опытом — с обсуждениями, спорами, настолками и разговорами о рабочих задачах.

Главный упор — на практику. Спикеры разберут реальные рабочие кейсы. Параллельно будут работать зоны открытого общения — можно в любой момент присоединиться к дискуссиям и провести время с пользой.

🚀 Подробнее о программе — в карточках и на сайте мероприятия

Читать полностью…

C++ Academy

Своя виртуальная машина на C за 200 строк⁠⁠

Каждый раз, когда мы запускаем inference LLM, мы на самом деле гоняем программу в виртуальной машине. PyTorch крутит граф вычислений, llama.cpp интерпретирует GGUF, vLLM гоняет свой движок поверх CUDA. Мы живём в мире абстракций настолько глубоких, что уже забыли, как это всё работает на уровне байтов.

Ребята, рекомендую статью от Scarlett. Она показывает, как написать полноценную виртуальную машину на чистом C меньше чем за 200 строк. Без фреймворков, без зависимостей, без магии. Только память, регистры и опкоды. И это самая освежающая вещь, которую я читал на этой неделе.

Почему AI-специалисту стоит уделить этому вечер. Мы постоянно работаем с абстракциями поверх абстракций. Python вызывает CUDA-ядра, которые транслируются в PTX, который превращается в SASS, который исполняется на SM. Когда что-то падает с out of memory или внезапно становится в десять раз медленнее, мы открываем Nsight и видим непонятные буквы. Понимание того, как вообще работает машина, отдельная суперсила, которая окупается на каждом продакшен-инциденте.

Если кратко, что там внутри. Автор строит VM по образу LC-3, это учебная архитектура фон-Неймана. 65 536 ячеек памяти по 16 бит, 10 регистров, включая программный счётчик и регистр условных флагов. Вся инструкция это 16 бит, где первые 4 бита опкод, остальные параметры. Поддерживается 14 команд: арифметика, загрузка и сохранение памяти, переходы, вызовы подпрограмм и trap для ввода-вывода.

Самое интересное это цикл fetch decode execute. Три строки кода. Читаем инструкцию по адресу из RPC, увеличиваем RPC, вызываем обработчик по индексу опкода из таблицы указателей на функции. Всё. Вот так работает любой процессор в мире, только сложнее и с миллиардами транзисторов. Когда вы понимаете это на уровне C, архитектурные особенности Transformer runtime перестают казаться чёрной магией.

Ещё из приятного. Есть подробный разбор битовых полей инструкций, объяснение sign extension, работа с условными флагами N, Z, P и аккуратная реализация trap-таблицы через массив указателей на функции вместо гигантского switch. Этот приём напрямую переиспользуется, когда вы пишете свой интерпретатор графа или custom kernel dispatcher.

Что из этого вытаскивает AI-инженер. Во-первых, интуицию по поводу того, как устроен любой runtime, от TensorRT до ONNX. Во-вторых, понимание, почему arena-аллокаторы и заранее выделенная память бьют malloc в цикле. В-третьих, это лучший антидот от выученной беспомощности на фоне LLM-ассистентов. Пока Cursor пишет вам код на TypeScript, вы садитесь и руками собираете VM на C, которая исполняет машинный код. Мозг перезагружается, руки помнят, что такое настоящая инженерия.

Совет. Не просто читайте. Откройте файл, начните с main memory и регистров, добавляйте по одной инструкции. Сверяйтесь с постом, когда застряли. К концу вечера у вас будет рабочая VM, в которую можно загрузить свой собственный hex-файл и выполнить сложение двух чисел с клавиатуры. Это тот самый момент, ради которого мы когда-то пошли в инженерию.

Источник и полный разбор: https://x.com/Zyara_1ot/status/2045916052559900725

Читать полностью…

C++ Academy

Веселье с type erasure: делаем обертку с семантикой значения для полиморфных типов
Павел Новиков

Цель доклада — познакомить с подноготной базовой реализации type erasure (т.н. «стирание типов») в C++, а также придать уверенности при возможном взаимодействии с подобным кодом.

Используя реализацию обертки с семантикой значения в качестве примера, мы посмотрели на то, как работает type erasure, похожий на std::any.

В отличие от повсеместно используемой семантики указателя или ссылки, в данном случае обертка с семантикой значения позволяет нам обращаться с полиморфными объектами со «стертыми типами» как с обычными значениями: перемещать их, копировать, присваивать новые значения, при этом всей головной болью владения (ownership) и клонирования объекта исходного типа займётся реализация «за кулисами».

источник

#cpp #programming

Читать полностью…

C++ Academy

DOOM ЧЕРЕЗ CURL. ДА, ПРОСТО HTTP ЗАПРОС

Разработчик запустил Doom прямо в терминале без установки и GUI.

Работает через обычный curl. Под капотом сервер стримит кадры игры как ANSI-графику, а ввод с клавиатуры уходит обратно по тому же соединению.

По сути это полноценная игра поверх HTTP, без клиента, без зависимостей. Только bash и сеть.

Сюрреализм в том, что это не демка, а реально играбельная штука.

Хочешь попробовать - открываешь терминал и играешь.

https://github.com/xsawyerx/curl-doom

Читать полностью…

C++ Academy

🧩 C++ обертка для PCRE2

pcre2cpp - это объектно-ориентированная обертка для библиотеки PCRE2, обеспечивающая удобный интерфейс для работы с регулярными выражениями. Поддерживает C++17 и C++20, упрощая процесс сопоставления и захвата результатов.

🚀 Основные моменты:
- Объектно-ориентированный интерфейс для PCRE2 10.47
- Совместимость с C++17 и C++20
- Удобное сопоставление регулярных выражений
- Встроенное захватывание результатов

📌 GitHub: https://github.com/MAIPA01/pcre2cpp

#cpp

Читать полностью…

C++ Academy

oneDNN

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

https://github.com/oneapi-src/oneDNN

Читать полностью…

C++ Academy

Data-Parallel Types: алгоритмы (C++26)

Библиотека «data-parallel types» для SIMD-векторов (пространство имён std::experimental, алиас stdx) предоставляет четыре специальных алгоритма: `min, max, minmax и clamp.

min, max, minmax

- min(a, b) и max(a, b) принимают два SIMD-вектора и возвращают вектор покомпонентных минимумов/максимумов.
- minmax(a, b) возвращает пару SIMD-векторов: первый — покомпонентные минимумы, второй — максимумы.
- Автор отмечает, что строка stdx::minmax(a, b) у него не компилировалась ни в GCC, ни в Clang (на момент публикации).

clamp

- stdx::clamp(v, lo, hi) применяет std::clamp к каждому элементу SIMD-вектора: значения ниже lo поднимаются до нижней границы, выше hi — опускаются до верхней.
- Показаны два примера: ограничение к диапазону INT8_MIN..INT8_MAX и к 0..UINT8_MAX; на выводах видно, как выходящие за пределы элементы прижимаются к границам.

Итог

- Для SIMD-векторов доступны привычные «минимумы/максимумы» и покомпонентный clamp.
- minmax задуман как удобный возврат пары (min/max), но в текущих компиляторах может не собираться.
- Дальше автор планирует разбирать новые возможности C++26 (в частности, контракты).

https://www.modernescpp.com/index.php/data-parallel-types-algorithms/

#cpp #programming

Читать полностью…

C++ Academy

⚡️ Хочешь собрать GPU с нуля - вот настоящий появился симулятор Mvidia

Нашли для вас сайт, где можно пройти весь путь железа руками. Без теории ради теории, а через интерактив.

Начинаешь с базы
движение электронов, транзисторы, логика

• Дальше собираешь уровни выше
логические схемы, ALU, простой процессор

До GPU ещё не дошли
блоки про шейдеры и графику пока в разработке, но фундамент уже есть

На Hacker News проект активно хвалят, особенно за подачу и понятную прогрессию

Хороший способ наконец понять, как всё это реально устроено под капотом, а не на уровне абстракций

Сначала проходишь симулятор потом уже думаешь, как построить Nvidia 2.0

https://jaso1024.com/mvidia/

Читать полностью…

C++ Academy

Компилятор для языка Си, написанный на Shell

Александр Гомес Гайгалас (Alexandre Gomes Gaigalas), автор библиотеки coral для создания переносимых shell-скриптов, опубликовал C89cc.sh, компилятор для языка Си, написанный целиком на Shell. Компилятор поддерживает стандарт C89 и может генерировать исполняемые файлы в формате ELF64 для систем x86-64. Код содержит около восьми тысяч строк и открыт под лицензией ISC.

Подробнее:
https://opennet.ru/65133/
https://opennet.me/65133/

Читать полностью…

C++ Academy

Яндекс ищет начинающих и опытных разработчиков

Работать в Яндексе — это синтезировать науку и бизнес, создавать полезные продукты для миллионов пользователей. Участвуйте в Week Offer Backend* и получите офер за неделю.

Сейчас нам нужны:

🟢Бэкенд-разработчики с опытом на C++, Python, Java/Kotlin, Go** от 4 лет.

🟢Стажёры-разработчики, с базой по алгоритмам и структурам данных, навыком кодинга на C++, Python, Java/Kotlin, Go**.

Участвуйте в быстром наймовом мероприятии, чтобы пройти все собеседования и получить офер или приглашение на оплачиваемую стажировку.

Даты мероприятия:

🟢 11–17 апреля — для опытных бэкендеров.
🟢 13–17 апреля — для стажёров.

🔶 Все этапы проходят онлайн. Подробности и регистрация — по ссылке: https://yandex.ru/project/events/wo_backend_0426

Читать полностью…

C++ Academy

✔️ Одно слово в C, которое может ускорить ваш цикл

В C есть ключевое слово restrict.

Оно говорит компилятору простую, но очень важную вещь:

«Эти указатели не пересекаются в памяти».

Без restrict компилятор обязан быть осторожным. Он не знает, могут ли a, b и result указывать на один и тот же участок памяти. Поэтому он не всегда может агрессивно оптимизировать код.

С restrict ситуация меняется:

- компилятор уверен, что указатели не alias друг друга
- цикл можно безопаснее векторизовать
- загрузки и записи можно переупорядочивать
- проще включать SIMD-инструкции
- GCC и Clang получают больше свободы для оптимизаций

Пример:


void add_arrays(int *restrict a,
int *restrict b,
int *restrict result,
int n)
{
for (int i = 0; i < n; i++)
result[i] = a[i] + b[i];
}

Но есть важный момент.

restrict - это обещание программиста компилятору. Если вы соврали и передали пересекающиеся массивы, поведение может стать неопределённым.

Именно поэтому restrict полезен в участках кода, где вы точно контролируете память: численные вычисления, обработка массивов, графика, DSP, low-level performance-код.

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

Читать полностью…

C++ Academy

Самый знаменитый комментарий в истории C.

Его оставил разработчик id Software в 1999 году в коде Quake III Arena.

Одна строка с приведением указателя, один битовый сдвиг, одно вычитание - и на выходе получается приближение к 1/√x.

Просто битовые трюки, магическая константа и финальный шаг уточнения методом Ньютона.

А комментарий в коде был максимально честный:

what the f***?

Читать полностью…

C++ Academy

⚙️ clap: современный парсер аргументов командной строки для C++26

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

🚀Основные моменты:
- Поддержка значений по умолчанию и необязательных аргументов
- Краткие аргументы и комбинированные флаги
- Аннотации для описаний полей
- Автоматическое преобразование имен в kebab-case
- Простота использования с рефлексией

📌 GitHub: https://github.com/nathan-baggs/clap

#cpp

Читать полностью…

C++ Academy

🚀 Высокоскоростная межъязыковая IPC библиотека Tachyon

Tachyon обеспечивает рекордно низкую задержку (56.5 нс) для межъязыкового взаимодействия между 7 языками, включая Python, Java и Rust. Он использует нулевую копию для передачи данных, что делает его идеальным для приложений, требующих высокой производительности, таких как ML и обработка медиа.

🚀 Основные моменты:
- Поддержка 7 языков: Python, Node.js, Java, Kotlin, Rust, Go, C++.
- Нулевая копия данных для повышения скорости.
- Простота использования: всего одна зависимость — ваш ядро.
- Идеален для ML и торговых приложений.

📌 GitHub: https://github.com/riyaneel/Tachyon

Читать полностью…

C++ Academy

🧩 userver 3.0 — крупное обновление C++ фреймворка от Яндекса для highload-сервисов

Яндекс Go выпустил новую версию open source-фреймворка userver, который используется для разработки высоконагруженных и отказоустойчивых систем промышленного масштаба. В релиз вошло более 2500 улучшений.

🚀 Основные моменты:
- Chaotic — генерация boilerplate-кода по схемам данных
- userver easy — быстрый старт микросервисов с возможностью дальнейшего масштабирования
- Снижение потребления RAM и CPU в production-сценариях
- Асинхронная архитектура для высоконагруженных сервисов
- Используется в реальных сервисах Яндекса: Go, Еда, Лавка и других
- Open source и доступен сообществу на GitHub

📌 GitHub https://github.com/userver-framework

#cpp

Читать полностью…

C++ Academy

🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀

В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать реализовать эту игру на Си для Android с весом APK менее 100 КБ. 🚀

Идея казалась безумной, но спортивный интерес взял верх. 💪

https://github.com/VadimBoev/FlappyBird

#cpp #programming

Читать полностью…

C++ Academy

#вопросы_с_собеседований
Бывает такое, что оператор new не выделяет память?

Ответ:
Да, бывает, когда new передаётся указатель на уже выделенную память (например, с помощью malloc). Это называется placement new. И оператор new без изменения возвращает второй параметр - указатель (void* operator new(std::size_t, void*)). Это используется для создания объектов в выделенном "хранилище" или после malloc.

Важно! В этом случае деструктор нужно вызывать самостоятельно!

Читать полностью…

C++ Academy

⚡️ Вы слышали про Rust. Знаете, что он быстрый, безопасный и что за ним будущее.

Осталось одно: сесть и выучить.

Этот курс со Stepik- кратчайший путь от «знаю что такое Rust» до «пишу на нём».

6 модулей, 50 уроков, 143 теста. Ownership, borrowing, traits, async, Tokio, Axum, макросы, WASM — всё разложено по полочкам и закреплено практикой.
Никакого видео на 40 минут ради одной мысли. Подробный текст, много кода, реальные задачи после каждого урока. На выходе — портфолио из 10+ проектов: от CLI-утилит до REST API с базой данных.

48 часов действует скидка 55 процентов: stepik.org/course/269250

Читать полностью…

C++ Academy

Алгоритмы - это не только про собеседования

Это способ прокачивать мышление: работать со сложностью, находить неочевидные решения и держать форму. А еще один из шансов попасть на конференцию Day&Night* Городских сервисов Яндекса, которая пройдет 18 апреля в Москве.

Решайте задачу от Миши Левина, руководителя направления машинного обучения Городских сервисов Яндекса, до 12.00 15 апреля.

Решаешь правильно - получаешь шанс попасть на конференцию Day&Night* и выиграть другие призы.

А что будет на конференции?

Доклады про технологии и архитектуру
Реальные кейсы применения ИИ, бэкенда и мобильной разработки в Городских сервисах Яндекса. И живое общение с людьми, которые это все делают в формате камерных клубов.

Попасть можно по классике через заявку. А можно через задачи.

Выбирай свой способ 🙂

*День и Ночь

Читать полностью…

C++ Academy

C породил всё: как один язык стал отцом C++, Java, Rust, Go, Swift и Zig

Daniel Lemire, эксперт по производительности софта из топ-2% ученых мира (по рейтингу Stanford/Elsevier 2025) и топ-1000 разработчиков на GitHub, опубликовал статью про эволюцию языков программирования семейства C. Разбираем ключевые тезисы.

Всё началось с трех языков: Fortran (1957), Pascal (1970) и C (1972). Fortran создавался для числодробилки и научных расчетов. Pascal намеренно ограничивал низкоуровневый доступ, потому что задумывался как учебный язык для структурного программирования. А вот C победил именно потому, что позволял работать с указателями, прямым доступом к памяти и при этом оставался достаточно универсальным для системной разработки вроде Unix.

В 80-е и 90-е объектно-ориентированное программирование стало чем-то вроде религии. Lemire прямо пишет: это превратилось в секту. Но C не был объектно-ориентированным. Так появился C++, который начинался как «C with Classes». C++ принес шаблоны, обобщенное программирование и метапрограммирование на этапе компиляции. Это сделало язык мощным, но и сложным для освоения (с безумными сообщениями об ошибках).

Показываю как профессионально работать с Claude и другими ИИ у себя в телеге! И зеркало Max, если тг не работает(

C и C++ стали дико успешными, но писать кроссплатформенные приложения было больно. Приходилось целиться в Windows или конкретный Unix. Это было проблемой для Sun Microsystems, которая продавала Unix-машины и хотела конкурировать с Microsoft.

Так в 1995 году появилась Java. Безопасная, портативная альтернатива C++: без арифметики указателей, с обязательной сборкой мусора, проверкой границ массивов и виртуальной машиной (JVM) с JIT-компиляцией для производительности. Обещание «write once, run anywhere» напрямую закрывало боль портируемости C/C++. До сих пор Java остается сильным решением для enterprise и серверного кода.

В том же 1995-м появился JavaScript, который, несмотря на название, семантически почти ничего общего с Java не имеет. Lemire считает, что его лучше рассматривать отдельно от ветки C/C++. Python тоже стоит особняком.

Microsoft в 2000 году выкатила C#. Синтаксически он из того же семейства, что C++ и Java, но с поддержкой AOT-компиляции в современном .NET и возможностью работать с указателями в явно помеченных unsafe-блоках. По сути, C# можно назвать «C++ со сборкой мусора». Он даже конкурирует с C++ в геймдеве благодаря Unity.

Google создал Go как упрощенный современный C: со сборкой мусора, встроенной проверкой границ для слайсов и массивов, с указателями, но без произвольной арифметики в безопасном коде (пакет unsafe существует для низкоуровневых нужд).

Apple ответила Swift. Производительность и цели синтаксиса как у C++, но с современными фичами безопасности (проверка границ по умолчанию, паника при переполнении целых чисел в debug-режиме) и автоматическим подсчетом ссылок (ARC) для управления памятью. Swift заменил Objective-C, но Lemire рассматривает его как наследника C++.

Примерно тогда же появились Rust и Zig. Rust, как и Swift, отказался от поколенческой сборки мусора из Java, C# и Go. Вместо этого он полагается на систему владения и заимствования на этапе компиляции, с компромиссом: через циклические ссылки можно допустить утечку памяти. Zig делает работу с памятью полностью явной.

Интересный тезис Lemire: Rust и Zig правильнее считать потомками C, а не C++. Оба, конечно, намного мощнее C, но по духу они именно C-подобные языки.

Доминирующими языками для перформанс-критичных, системных, enterprise- и инфраструктурных задач до сих пор остаются C, C++, Java и C#. По эффекту Линди (чем дольше что-то существует, тем дольше оно, вероятно, просуществует), эти языки, особенно C, которому уже больше 50 лет, будут с нами еще очень долго.

https://vc.ru/dev/2860450-yazyk-c-i-vliyanie-na-c-java-rust-go-swift-i-zig

Читать полностью…

C++ Academy

Алгоритмы - это не только про собеседования

Это способ прокачивать мышление: работать со сложностью, находить неочевидные решения и держать форму. А еще один из шансов попасть на конференцию Day&Night* Городских сервисов Яндекса, которая пройдет 18 апреля в Москве.

Решайте задачу от Ильи Царева, руководителя разработки Яндекс Go, до 12.00 11 апреля.

Решаешь правильно - получаешь шанс попасть на конференцию Day&Night* и выиграть другие призы.

А что будет на конференции?

Доклады про технологии и архитектуру
Реальные кейсы применения ИИ, бэкенда и мобильной разработки в Городских сервисах Яндекса. И живое общение с людьми, которые это все делают в формате камерных клубов.

Попасть можно по классике через заявку. А можно через задачи.

Выбирай свой способ 🙂

*День и Ночь

Читать полностью…

C++ Academy

📱 C++/Qt/QML разработчик в команду Mobile Android
— делаешь UI и механику приложения
— 20 млн пользователей каждый день
— C++20 + Qt + QML + 3D-карта
— многопоточность и продуктовая разработка

🧠 C++ разработчик в команду алгоритмов Поиска
— разрабатываешь движок поиска 2ГИС
— алгоритмы, структуры данных, архитектура
— влияние на качество поиска для миллионов
— производительность, память, ML-модели

Обе роли:
— удалёнка
— сильные команды
— сложные задачи

👉 Другие инженерные инсайты от 2ГИС → в Telegram-канале RnD

Читать полностью…

C++ Academy

ffead-cpp

ffead-cpp — это веб-фреймворк, фреймворк приложений и набор утилит, объединенные в один пакет. Он также предоставляет встроенное ядро сервера, совместимое с HTTP/HTT2/Web-Socket.

#для_продвинутых

Читать полностью…

C++ Academy

🎲 Высокопроизводительная генерация случайных чисел с Zorro

Zorro - это библиотека для генерации случайных чисел на основе xoshiro256++, поддерживающая автоматическую SIMD-диспетчеризацию. Просто добавьте один заголовочный файл в проект и получите доступ к высокопроизводительным генераторам для различных распределений.

🚀Основные моменты:
- Поддержка uniform, normal, exponential и Bernoulli распределений.
- Автоматический выбор SIMD на этапе компиляции.
- Высокая производительность: до 3900 M/s для uniform генерации.
- Легкая интеграция с существующими проектами через один заголовок.

📌 GitHub: https://github.com/bobjansen/Zorro

Читать полностью…

C++ Academy

libPhenom

libPhenom — это фреймворк событий, разработанный Facebook для создания высокопроизводительных и масштабируемых систем на C++. Он обеспечивает простой и эффективный способ публикации и подписки на события, а также маршрутизации событий между различными компонентами системы.

#для_продвинутых

Читать полностью…
Subscribe to a channel