👾 Скрытые ловушки встроенной сборки в C++
В видео разбирается фундаментальная проблема несовместимости моделей параллелизма C++ (RC11) и x86, возникающая при использовании встроенной сборки.
❗ Ключевые моменты доклада:
• невременные хранилища (non-temporal stores) обходят кэш и нарушают синхронизацию acquire-release
• стандартные режимы доступа RC11 не могут корректно моделировать встроенную сборку
• предлагается расширение модели с тремя новыми режимами доступа: TSO, non-temporal и store fence
Основной фокус — разработка семантики, которая позволяет корректно совмещать высокоуровневые конструкции C++ с низкоуровневыми инструкциями x86 в одной программе.
Вы поймёте, почему простое добавление inline assembly может привести к data race и нарушению корректности многопоточной программы, даже если код выглядит безопасным с точки зрения модели памяти C++.
👉 Видео
Библиотека C/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
👍2
Вызов функций с аргументами из 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)
• Функциональное программирование
• Рефлексия: вызов методов с динамическими аргументами
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍6
⏰ Осталось 48 часов!
Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.
⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.
👉 Забрать место
Обратный отсчёт пошёл: только до воскресенья 23:59 можно купить курс «AI-агенты для DS-специалистов» и начать учиться уже с 15 сентября.
⚡️ Это ваши +3 недели форы, чтобы спокойно разобраться в самых сложных темах и прийти к первому занятию 7 октября уже подготовленным.
👉 Забрать место
❤1😁1
🤓 «Сначала выучу Python идеально, а потом пойду в ML»
Звучит логично, но на практике — ловушка.
Python огромный: фреймворки, библиотеки, нюансы синтаксиса. Учить «всё сразу» можно бесконечно.
В итоге — месяцы зубрёжки, а до ML руки так и не доходят.
На старте достаточно баз: типы данных, циклы, функции, работа с библиотеками. Всё остальное лучше подтягивать в процессе решения ML-задач.
⚠️ До 1 сентября курсы можно забрать по старым ценам. Это последние выходные, когда:
— ML идёт за 34 000 вместо 44 000 ₽ + Python в подарок,
— два в одном: оплатите курс по математике и получите второй доступ в подарок,
— и главное: можно купить все курсы до подорожания.
👉 ML для старта в Data Science
А для будущих Data Scientist’ов у нас ещё:
— Базовые модели ML и приложения
— Математика для Data Science
— AI-агенты для DS-специалистов (2-й поток скоро)
Звучит логично, но на практике — ловушка.
Python огромный: фреймворки, библиотеки, нюансы синтаксиса. Учить «всё сразу» можно бесконечно.
В итоге — месяцы зубрёжки, а до ML руки так и не доходят.
На старте достаточно баз: типы данных, циклы, функции, работа с библиотеками. Всё остальное лучше подтягивать в процессе решения ML-задач.
⚠️ До 1 сентября курсы можно забрать по старым ценам. Это последние выходные, когда:
— ML идёт за 34 000 вместо 44 000 ₽ + Python в подарок,
— два в одном: оплатите курс по математике и получите второй доступ в подарок,
— и главное: можно купить все курсы до подорожания.
👉 ML для старта в Data Science
А для будущих Data Scientist’ов у нас ещё:
— Базовые модели ML и приложения
— Математика для Data Science
— AI-агенты для DS-специалистов (2-й поток скоро)
❤1
Можно ли в C++ создать ссылку на ссылку?
Anonymous Quiz
43%
Да, это называется double reference
37%
Нет, ссылки на ссылки запрещены
10%
Да, но только в template-ах (reference collapsing)
5%
Да, но только для временных объектов
6%
Только в C++26
ПОСЛЕДНИЙ ДЕНЬ❗
КУРСЫ ПОДОРОЖАЮТ ЗАВТРА‼️
— ML за 34к вместо 44к + Python в подарок
— Математика → второй доступ в подарок
— Ранний доступ к AI-агентам с 15 сентября
— И МОЖНО УСПЕТЬ КУПИТЬ ВСЁ ДО ПОДОРОЖАНИЯ
👉 Proglib Academy
КУРСЫ ПОДОРОЖАЮТ ЗАВТРА‼️
— ML за 34к вместо 44к + Python в подарок
— Математика → второй доступ в подарок
— Ранний доступ к AI-агентам с 15 сентября
— И МОЖНО УСПЕТЬ КУПИТЬ ВСЁ ДО ПОДОРОЖАНИЯ
👉 Proglib Academy
😁2
📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😼 Интересное:
• Constexpr эволюция — от C++11 до C++23 — история развития constexpr
😎 Полезное:
• Structured Bindings: распаковка данных — элегантная работа с multiple return values и сложными структурами
• Скрытые ловушки встроенной сборки в C++ — разбор фундаментальных проблем несовместимости моделей параллелизма
• std::apply — способ упрощения написания кода с помощью
🔥 Интересные проекты:
• DevilutionX — это порт Diablo и Hellfire, призванный упростить управление игрой, а также внести улучшения в движок
• SwapTube — приложение для кодирования видео построенное на базе FFMPEG
• FlatBuffers — кроссплатформенная библиотека сериализации, разработанная для максимальной эффективности использования памяти
Библиотека C/C++ разработчика
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😼 Интересное:
• Constexpr эволюция — от C++11 до C++23 — история развития constexpr
😎 Полезное:
• Structured Bindings: распаковка данных — элегантная работа с multiple return values и сложными структурами
• Скрытые ловушки встроенной сборки в C++ — разбор фундаментальных проблем несовместимости моделей параллелизма
• std::apply — способ упрощения написания кода с помощью
std::apply
🔥 Интересные проекты:
• DevilutionX — это порт Diablo и Hellfire, призванный упростить управление игрой, а также внести улучшения в движок
• SwapTube — приложение для кодирования видео построенное на базе FFMPEG
• FlatBuffers — кроссплатформенная библиотека сериализации, разработанная для максимальной эффективности использования памяти
Библиотека C/C++ разработчика
❤4👍1
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что выведет код (примерно)?
Anonymous Quiz
54%
bool
10%
int
7%
char
6%
Ошибка компиляции
24%
Что-то с "proxy" или похожее
😁20
🐸 Подборка вакансий для C++-разработчиков за неделю
Инженер-разработчик встраиваемых систем (Middle-Embedded) — до 370 000 ₽ Офис (Елабуга)
Middle Разработчик на C/C++ под Linux — от 250 000 и до 300 000 ₽ Удалёнка
Senior C++ Developer — от 350 000 ₽ Удалёнка
Программист С++ — от 250 000 ₽ Удалёнка
Разработчик Qt/C++ — Удалёнка
Разработчик на С++ (Инфраструктура Алисы / DWH) — от 300 000 и до 490 000 ₽ Гибрид (Москва)
Библиотека C/C++ разработчика
Инженер-разработчик встраиваемых систем (Middle-Embedded) — до 370 000 ₽ Офис (Елабуга)
Middle Разработчик на C/C++ под Linux — от 250 000 и до 300 000 ₽ Удалёнка
Senior C++ Developer — от 350 000 ₽ Удалёнка
Программист С++ — от 250 000 ₽ Удалёнка
Разработчик Qt/C++ — Удалёнка
Разработчик на С++ (Инфраструктура Алисы / DWH) — от 300 000 и до 490 000 ₽ Гибрид (Москва)
Библиотека C/C++ разработчика
❤2👍1
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
Что произойдёт при вызове виртуального метода в конструкторе?
Anonymous Quiz
28%
Вызовется метод производного класса
45%
Вызовется метод базового класса
14%
Ошибка компиляции
4%
Ничего
9%
Исключение во время выполнения
🌚1
📉💼 Грейдинг умер: 5 трендов IT-найма 2025
Помнишь времена, когда можно было поменять работу и сразу получать на 50% больше? Забудь. В 2025-м правила игры кардинально изменились — теперь компании боятся ChatGPT на собесах, а искать работу через LinkedIn стало бесполезно. Разбираем 5 трендов, которые перевернули IT-найм с ног на голову.
👉 Читать статью
Библиотека C/C++ разработчика
Помнишь времена, когда можно было поменять работу и сразу получать на 50% больше? Забудь. В 2025-м правила игры кардинально изменились — теперь компании боятся ChatGPT на собесах, а искать работу через LinkedIn стало бесполезно. Разбираем 5 трендов, которые перевернули IT-найм с ног на голову.
👉 Читать статью
Библиотека C/C++ разработчика
👍3🥱1
🧪 Промпт дня: Создания тестов в C++
Мы подготовили для вас полезный промпт, который поможет быстро создать качественные тесты для любых C++ функций с использованием современных фреймворков.
✏️ Промпт:
Где [ define technology ] — это ваш тестовый фреймворк (Google Test, Catch2, Boost.Test и т.д.).
✅ Пример использования:
•
•
💡 Такой подход поможет вам:
• Создать тесты в едином стиле
• Покрыть как успешные, так и неуспешные сценарии
• Быстро адаптироваться к любому тестовому фреймворку
• Обеспечить базовое покрытие для локальной валидации
🍴 Какие тестовые фреймворки вы используете в своих C++ проектах? Делитесь опытом в комментариях!
Библиотека C/C++ разработчика
#буст
Мы подготовили для вас полезный промпт, который поможет быстро создать качественные тесты для любых C++ функций с использованием современных фреймворков.
Create two [ define technology ] tests for the above 'tempFunction' function. One that is expected to pass and one that is expected to fail.
Где [ define technology ] — это ваш тестовый фреймворк (Google Test, Catch2, Boost.Test и т.д.).
•
Create two Google Test tests for the above 'calculateAverage' function. One that is expected to pass and one that is expected to fail.
•
Create two Catch2 tests for the above 'validateEmail' function. One that is expected to pass and one that is expected to fail.
• Создать тесты в едином стиле
• Покрыть как успешные, так и неуспешные сценарии
• Быстро адаптироваться к любому тестовому фреймворку
• Обеспечить базовое покрытие для локальной валидации
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1😁1
Переворачиваем календарь — а там скидки, которые уже закончились.
Но мы их вернули на последний день 🤔
До 00:00 третьего сентября (цены как до 1 сентября):
▪️ Математика для Data Science — 35.199 ₽ вместо 44.900 ₽
▪️ Алгоритмы и структуры данных — 31.669 ₽ вместо 39.900 ₽
▪️ Основы IT — 14.994 ₽ вместо 19.900 ₽
▪️ Архитектуры и шаблоны — 24.890 ₽ вместо 32.900 ₽
▪️ Python — 24.990 ₽ вместо 32.900 ₽
▪️ ML для Data Science — 34.000 ₽ вместо 44. 000 ₽
▪️ AI-агенты — 49.000 ₽ вместо 59.000 ₽
👉 Хватаем скидки из прошлого
P.S. Машину времени одолжили у дяди Миши
Но мы их вернули на последний день 🤔
До 00:00 третьего сентября (цены как до 1 сентября):
▪️ Математика для Data Science — 35.199 ₽ вместо 44.900 ₽
▪️ Алгоритмы и структуры данных — 31.669 ₽ вместо 39.900 ₽
▪️ Основы IT — 14.994 ₽ вместо 19.900 ₽
▪️ Архитектуры и шаблоны — 24.890 ₽ вместо 32.900 ₽
▪️ Python — 24.990 ₽ вместо 32.900 ₽
▪️ ML для Data Science — 34.000 ₽ вместо 44. 000 ₽
▪️ AI-агенты — 49.000 ₽ вместо 59.000 ₽
👉 Хватаем скидки из прошлого
P.S. Машину времени одолжили у дяди Миши
😁2🌚1
Вызов callable объектов (функции, лямбды, member функции) требует разного синтаксиса. Но можно унифицировать вызовы с помощью std::invoke.
// Разный синтаксис для разных типов
func(); // функция
obj.method(); // метод
(obj.*ptr_to_member)(); // указатель на метод
lambda(); // лямбда
// Единый синтаксис для всех callable
std::invoke(func);
std::invoke(&Class::method, obj);
std::invoke(lambda);
std::invoke(ptr_to_member, obj);
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🤔2🔥1😢1
😎 Сколько баллов набрали вы?
Голосуйте, какой у вас уровень разработчика:
😁 — 5-12 баллов (стажер)
👍 — 13-25 баллов (джуниор)
⚡️ — 26-40 баллов (джуниор+)
👏 — 41-60 баллов (миддл)
🔥 — 61-80 баллов (миддл+)
🎉 — 81-100 баллов (сеньор)
🤩 — 100+ баллов (тимлид)
Но вот в чем прикол — опытный разработчик набирает баллы не случайными косяками, а осознанными решениями.
👉 Научим, как быстро прокачаться от стажера до сеньора
Голосуйте, какой у вас уровень разработчика:
😁 — 5-12 баллов (стажер)
👍 — 13-25 баллов (джуниор)
⚡️ — 26-40 баллов (джуниор+)
👏 — 41-60 баллов (миддл)
🔥 — 61-80 баллов (миддл+)
🎉 — 81-100 баллов (сеньор)
🤩 — 100+ баллов (тимлид)
Но вот в чем прикол — опытный разработчик набирает баллы не случайными косяками, а осознанными решениями.
👉 Научим, как быстро прокачаться от стажера до сеньора
😁5🎉2👍1
🧨 Кроссплатформенная утилита для сборки на основе Lua
Знакомьтесь с XMake — современной системой сборки на Lua, которая решает основные боли C++ разработчиков.
❗️ Ключевые преимущества:
• простой и читаемый синтаксис вместо языка CMake
• встроенный пакетный менеджер с поддержкой 500+ библиотек
• автоматическое управление зависимостями и кросс-компиляцией
• поддержка всех основных платформ и тулчейнов
• распределённая компиляция и кеширование сборки
Основной фокус — максимальная простота настройки при сохранении всех возможностей профессиональной системы сборки. XMake = Build backend + Project Generator + Package Manager.
Особенно актуально для команд, работающих с мультиплатформенными проектами, где важна скорость настройки окружения и воспроизводимость сборки.
✏️ Github
Библиотека C/C++ разработчика
Знакомьтесь с XMake — современной системой сборки на Lua, которая решает основные боли C++ разработчиков.
❗️ Ключевые преимущества:
• простой и читаемый синтаксис вместо языка CMake
• встроенный пакетный менеджер с поддержкой 500+ библиотек
• автоматическое управление зависимостями и кросс-компиляцией
• поддержка всех основных платформ и тулчейнов
• распределённая компиляция и кеширование сборки
Основной фокус — максимальная простота настройки при сохранении всех возможностей профессиональной системы сборки. XMake = Build backend + Project Generator + Package Manager.
Особенно актуально для команд, работающих с мультиплатформенными проектами, где важна скорость настройки окружения и воспроизводимость сборки.
Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥6