Что вернет main()?
Anonymous Quiz
10%
0
7%
1
55%
2
23%
Любое значение от 0 до 2
6%
Undefined behavior
😁5🤔3
⚡️ Фича дня: [[likely]]/[[unlikely]] (C++20)
🔥 Проблема:
Компилятор не знает, какие ветки кода выполняются чаще, что влияет на производительность.
✏️ Решение:
Атрибуты помогают компилятору оптимизировать предсказание переходов.
❌ До:
✅ После:
Применение:
• Обработка ошибок в системном коде
• Оптимизация горячих путей в циклах
• Улучшение производительности критических секций
💡 Помогают ли вам атрибуты в оптимизации?
Библиотека C/C++ разработчика
#буст
Компилятор не знает, какие ветки кода выполняются чаще, что влияет на производительность.
Атрибуты помогают компилятору оптимизировать предсказание переходов.
if (error_code != 0) {
handle_error(); // редкий случай
} else {
normal_processing(); // частый случай
}
if (error_code != 0) [[unlikely]] {
handle_error(); // компилятор оптимизирует как редкий случай
} else [[likely]] {
normal_processing(); // оптимизируется как частый случай
}
Применение:
• Обработка ошибок в системном коде
• Оптимизация горячих путей в циклах
• Улучшение производительности критических секций
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍8🔥3
🧨 Портирование C++ проектов: подводные камни архитектурных различий
💡
❗️ Ключевые моменты лекции:
• скрытые баги из-за изменения размеров указателей при переходе с 32-bit на 64-bit
• проблемы с SIMD-инструкциями при портировании с SSE (x86) на Neon (ARM)
• необходимость полного переписывания ассемблерного кода под новую архитектуру
Основной фокус — практические проблемы портирования X-Ray движка («Сталкер») на консоли и методы их решения через статический анализ кода.
Особенно актуально для разработчиков игровых движков и системного ПО, где производительность критична.
Вы узнаете, что код, который «просто работает», может содержать десятки скрытых UB, которые проявятся только при смене платформы — и найти их без специальных инструментов практически невозможно.
👉 Видео
Библиотека C/C++ разработчика
#буст
💡
Ростислав Михеев
в своей лекции на UNIGINE Open Air 2025
разобрал реальные кейсы портирования игровых движков и выделил критические моменты для C++ разработчиков.❗️ Ключевые моменты лекции:
• скрытые баги из-за изменения размеров указателей при переходе с 32-bit на 64-bit
• проблемы с SIMD-инструкциями при портировании с SSE (x86) на Neon (ARM)
• необходимость полного переписывания ассемблерного кода под новую архитектуру
Основной фокус — практические проблемы портирования X-Ray движка («Сталкер») на консоли и методы их решения через статический анализ кода.
Особенно актуально для разработчиков игровых движков и системного ПО, где производительность критична.
Вы узнаете, что код, который «просто работает», может содержать десятки скрытых UB, которые проявятся только при смене платформы — и найти их без специальных инструментов практически невозможно.
👉 Видео
Библиотека C/C++ разработчика
#буст
❤2