C++ Academy
16K subscribers
590 photos
125 videos
1 file
555 links
По всем вопросам- @haarrp

@itchannels_telegram - 🔥 best it channels

РКН: clck.ru/3FmxJF
Download Telegram
🖥 Found Modern C!

Эта бесплатная книга подробно разбирает каждый аспект С.

Вы можете значительно прокачать свои навыки, прочитав эту книгу.

Наслаждайтесь!

📚 Читать

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Высокая производительность и безопасность? Да, это про Rust.

Изучайте Rust в нашем курсе-тренажёре!
Получайте практические навыки с первого урока вместе с автором курса и опытным наставником.

Курс-тренажёр - это:
💡 100+ практических задач
💡 пет-проекты в портфолио: blockchain, frontend и backend
💡 code review от наших наставников 24/7 с нашим AI-помощником Ду-Ду
💡 бессрочный доступ к актуальной программе: обновляем каждые 3 месяца
💡 бесплатный демо-доступ с практикой

Для кого этот курс:
для разработчиков на системных языках C и C++
для разработчиков, которые взаимодействуют с высокоуровневыми языками (Python, JavaScript, Java и C#)

Уже сейчас вам доступны 3 первых урока:

Урок #1 | Выбор IDE, установка окружения и первый "hello world"
Соберёте и запустите первый "hello world" проект.

Урок #2 | Базовый синтаксис
Научитесь писать Rust код в процедурном стиле. Изучите типы данных, встроенные и пользовательские типы, функции и переменные

Урок #3 | Владение и заимствование
Используете механизмы управления памятью и ссылками. Решите несколько задач на владение, заимствование и слайсы.

➡️ Получить демо-доступ сейчас
🖥 shadPS4 — это эмулятор PlayStation 4 для Windows, Linux и macOS, написанный на C++!

🌟 Проект находится на ранней стадии разработки и уже может запускать некоторые игры, такие как Bloodborne и Dark Souls Remastered. Целью эмулятора является постепенное улучшение совместимости и производительности. Для сборки на различных платформах предоставлены инструкции, а поддержка геймпадов Xbox и DualShock осуществляется "из коробки".

🔐 Лицензия: GPL-2.0

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
Doom-captcha — капча в виде DOOM.

🎮 Doom-captcha

это капча в стиле игры DOOM, написанная на C++.

Чтобы пройти проверку, нужно уничтожить трех врагов.

🖥 Github
🔗 Демка

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ZLUDA — новая экспериментальная технология, позволяющая запускать CUDA-приложения на видеокартах AMD без модификаций кода. Проект особенно интересен для обладателей видеокарт Radeon RX 5000+ серий, предлагая достойную альтернативу стеку NVIDIA. Пока решение остается в разработке, но уже есть тесты от GeekBench 5.5.1, которые показывают многообещающие результаты — производительность близка к нативной CUDA.

🧑‍💻Как это работает?
ZLUDA подменяет системные библиотеки CUDA, перенаправляя вызовы через совместимый с ROCm интерфейс. Для запуска достаточно скопировать DLL-файлы в директорию приложения или использовать специальный лаунчер.

‼️ Важно:
—Поддержка пока ограничена Windows и Linux
—Требуются свежие драйверы Adrenalin Edition
—MacOS не поддерживается

🔗 Ссылка - *клик*

@cpluspluc
👾 Flax Engine — современный мощный инструмент для разработки 3D-игр с открытым исходным кодом. Проект упирается на качественную графику и удобный рабочий процесс и полностью написан на C++ и С# и возможно в будущем приблизиться к уровню Unity или Unreal.

⚡️ Движок отличается открытостью кода и готовностью команды принимать сторонние pull-запросы. Интересно, что любой желающий может внести свой вклад или использовать измененный исходный код в играх на основе Flax. Также у проекта хорошо прописана структура репозитория: отдельные папки под бинарники, исходники движка и редактора, шейдеры и сторонние библиотеки.

🔐 Лицензирование - EULA (для коммерческого использования)

🤖 GitHub

@cpluspluc
🖥 memsafe — это библиотека для C++, предназначенная для повышения безопасности работы с памятью!

🌟 Она использует пользовательские атрибуты для маркировки объектов и выполняет лексический анализ с помощью плагина компилятора (Clang). Проект предлагает решение, не нарушающее обратную совместимость, и позволяет добавлять проверки работы с памятью на основе строгих синтаксических правил.

🔐 Лицензия: LGPL-2.1

🖥 Github

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥Hexi — это лёгкая, заголовочная библиотека на C++23, предназначенная для безопасной обработки бинарных данных из различных источников, особенно сетевых.

Библиотека предоставляет два ключевых класса: buffer_adaptor и binary_stream.

buffer_adaptor служит обёрткой для контейнеров, обеспечивая низкоуровневые операции чтения и записи, а binary_stream использует этот адаптер для выполнения операций сериализации и десериализации.

Hexi поддерживает работу с различными стандартными контейнерами, такими как std::array, std::span, std::string_view, std::string и std::vector, при условии, что их типы значений являются байтовыми (например, char, std::byte, uint8_t). ​


Для обеспечения безопасности при работе с недоверенными данными, binary_stream выполняет проверку границ, предотвращая чтение за пределами доступных данных.

По умолчанию, при возникновении ошибки выбрасываются исключения, однако их можно отключить, указав шаблонный аргумент no_throw. Состояние потока можно проверить с помощью метода state() или оператором приведения к bool. ​
Безопасность: Hexi выполняет проверку границ при чтении данных, предотвращая выход за пределы буфера. По умолчанию при ошибках выбрасываются исключения (hexi::buffer_underrun, hexi::stream_read_limit), но их можно отключить, указав шаблонный аргумент no_throw

🔗 Github
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🔥 Best FREE Blender Hand Topology Tutorial

Один из лучших уроков по Blender

В этом туториале демонстрируется процесс моделирования руки в Blender с использованием аддона Camera Shakify для придания динамичности презентации. ​

📌 BlenderHub
📌 Видео

#b3d #geometrynodes #proceduralart #3dart #blender質 #3d #3Danimation #geonodes #B3D #Blender #Blender3D
🎮 Microsoft представила нейро-версию Quake II на базе Muse и WHAMM.

Microsoft Research представила WHAMM — новую систему или технологию, предназначенную для моделирования окружающего мира в реальном времени, с особым акцентом на интерактивные среды.

Это означает, что WHAMM способна быстро создавать и постоянно обновлять цифровую 3D-модель физического пространства, учитывая изменения, которые происходят в нем, в том числе в результате взаимодействия пользователя или других динамических событий.

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

Старая WHAMM — 1 fps, новая — 10 fps при 640×360, почти играбельно.

Модель помнит последние 0,9 секунды, что добавляет случайности.

Ключевая особенность — система работает достаточно быстро, чтобы обновлять модель мира практически мгновенно по мере поступления новых данных от сенсоров (вероятно, камер, датчиков глубины и т.д.). Это критически важно для плавного взаимодействия.

🔗 Играть в ИИ-версию Quake II можно здесь.

@cpluspluc

#microsoft #ai #quake #muse
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👴 Возрождение старичка — Clipper2

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

📈 В отличие от предшественника, Clipper2 предлагает не только базовые логические операции, но и поддержку сложных сценариев работы с полигональными сетками. Из приятного: ядро работает на C++ 17, с интерфейсами для С# и Delphi. Также есть возможность интеграции в другие языки с помощью динамических библиотек.

🤖 GitHub

@cpluspluc
👽 bdwgc — сборщик мусора для C/C++ с 30-летней историей

Проект представляет собой консервативный мусорный сборщик, разработанный еще в 1988 году, но до сих пор востребованный в системном программировании. Вdwgc может работать в "враждебной среде", сканируя стек и память, пытаясь угадать, какие данные являются указателями.

Проект может быть полезен для:
▪️ Долгоживущих сервисов, где утечки памяти критичны
▪️Встраиваемых систем с ограниченными ресурсами
▪️Научных вычислений на C/C++

🤖GitHub

@cplucplus
🔎 rwkv.cpp — проект, адаптирующий архитектуру RWKV для эффективной работы на обычных процессорах.

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

Инструмент реализован на C/C++ с поддержкой квантования и CUDA через cuBLAS.

Особенно интересна совместимость с LoRA-адаптерами, что позволяет дообучать модели без полного экспорта весов. Тесты показывают стабильную работу даже на 4-ядерных CPU с контекстом в 8K токенов.

🤖 GitHub

@cpluspluc
This media is not supported in your browser
VIEW IN TELEGRAM
Менеджер, который получает зарплату в 10 раз больше твоей 😂

@cpluspluc
📊 Bebop — свежий взгляд на бинарную сериализацию. Этот проект сочетает читаемость JSON с производительностью бинарных протоколов, обещая в 10-100 раз большую скорость работы по сравнению с традиционными решениями.

Собственный язык схем позволяет генерировать типобезопасный код для C++, С#, TypeScript, Rust и других языков, сохраняя при этом кросс-платформенную совместимость. При этом проект уже сейчас демонстрирует высокую производительность в бенчмарках, особенно в сценариях, критичных к задержкам.

🤖 GitHub

@cpluscpluc
Что выведет этот код? (C++23)


import std;

constexpr auto make_checker() {
return [](int x) consteval {
return x % 3 == 0 || x % 5 == 0;
};
}

int main() {
auto checker = make_checker();

std::vector numbers{1, 3, 5, 9, 10, 14, 15};

auto filtered = numbers | std::views::filter([&](int x) {
if (std::is_constant_evaluated()) {
std::print("constexpr\n");
}
return checker(x);
});

std::print("Filtered numbers: ");
for (int x : filtered) {
std::print("{} ", x);
}

std::println("");
}


🧠 Подсказка:
consteval делает checker доступным только в compile-time, но мы вызываем его в runtime через лямбду — что произойдёт?

std::is_constant_evaluated() — интересный механизм проверки, вызывается ли код во время компиляции.

Как отреагирует компилятор на попытку вызвать consteval функцию в runtime?


📌 Ответ
Этот код на C++23 не скомпилируется, и что именно здесь происходит.

🔍 Напоминаем ключевой фрагмент кода:

```cpp
constexpr auto make_checker() {
return [](int x) consteval {
return x % 3 == 0 || x % 5 == 0;
};
} ```

- Здесь создаётся лямбда-функция, помеченная как consteval.

- Ключевое слово consteval означает: функция обязана быть вызвана во время компиляции.

🧨 Где ошибка?


auto filtered = numbers | std::views::filter([&](int x) {
return checker(x); // ← ошибка тут
});


checker — это consteval-лямбда.

Но ты вызываешь её внутри лямбды, которая будет работать во время выполнения программы — т.е. в runtime.

Это нарушение правила consteval → нельзя вызывать такие функции в runtime-коде.

Что скажет компилятор?
Компилятор выдаст ошибку компиляции, такую или похожую:

error: call to consteval function '<lambda>(int)' is not a constant expression



📘 Объяснение
consteval ≠ constexpr

constexpr — это могут быть вызваны в runtime, если нужно.

consteval — это всегда и только compile-time.

Когда ты вызываешь checker(x) в main(), ты нарушаешь это правило.

Как можно исправить?
Если ты заменишь consteval на constexpr, код скомпилируется и выполнится:


constexpr auto make_checker() {
return [](int x) constexpr {
return x % 3 == 0 || x % 5 == 0;
};
}

И тогда результат будет:

Filtered numbers: 3 5 9 10 15

Потому что:
- 3 делится на 3
- 5 делится на 5
- 9 делится на 3
- 10 делится на 5
- 15 делится на 3 и 5