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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
👾 Скрытые ловушки встроенной сборки в C++

В видео разбирается фундаментальная проблема несовместимости моделей параллелизма C++ (RC11) и x86, возникающая при использовании встроенной сборки.

Ключевые моменты доклада:

• невременные хранилища (non-temporal stores) обходят кэш и нарушают синхронизацию acquire-release
• стандартные режимы доступа RC11 не могут корректно моделировать встроенную сборку
• предлагается расширение модели с тремя новыми режимами доступа: TSO, non-temporal и store fence

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

Вы поймёте, почему простое добавление inline assembly может привести к data race и нарушению корректности многопоточной программы, даже если код выглядит безопасным с точки зрения модели памяти C++.

👉 Видео

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

#буст
🔥3😁2🤔1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💃 Репозиторий для ВСЕХ ПРОГРАММИСТОВ И ГИКОВ

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

👉 ТОП полезных сайтов — здесь

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🍓 Команда дня: std::apply (C++17)

Вызов функций с аргументами из tuple требует распаковки вручную.


До:

cppauto args = std::make_tuple(1, 2.5, "hello");

// Как передать все аргументы в функцию?
func(std::get<0>(args), std::get<1>(args), std::get<2>(args));



После:
cppauto args = std::make_tuple(1, 2.5, "hello");
std::apply(func, args); // Автоматическая распаковка!



🌳 Практические примеры:

• Вызов конструкторов: std::apply([](auto... args){ return T{args...}; }, tuple)
• Функциональное программирование
• Рефлексия: вызов методов с динамическими аргументами


👁 Используете std::apply для elegant кода?

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍5
Осталось 48 часов!

Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.

⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.

👉 Забрать место
😁1