!!! ВНИМАНИЕ, БЫЛА ПРОИЗВЕДЕНА ПЕРЕПРОВЕРКА ЗАМЕРОВ
Я провёл повторные замеры на корректно сконфигурированной сборке и с ужасом обнаружил, что реализация на Ref проигрывает ~20–30 % в end-to-end-тесте. Флеймграф показал, что вызовы через Ref::_vtable не инлайнатся, и лишняя
индирекция съедает предполагаемую выгоду. Первоначальные цифры были получены из-за некорректной конфигурации. Статья остаётся в блоге как fail caseЧитать полностью »
Рубрика «С++» - 2
Fail Case: Реализация полиморфизма без virtual на C++: концепты, трейты и Ref (и почему я отказался от этого подхода)
2025-07-09 в 12:15, admin, рубрики: concepts, Fat pointers, vtable, С++C++ Event System от идеи до реализации
2025-07-02 в 6:16, admin, рубрики: event system, eventsystem, С++, Система эвентовТе системы событий, с которыми я сталкивался, страдали от таких проблем:
-
Перегруженность интерфейса — макросы, громоздкие шаблоны, неочевидный синтаксис, множественная параметризация;
-
Broadcast — каждое событие отправляется всем слушателям, а они сами решают, нужно ли им реагировать. Это просто, но дорого;
-
Signal/Slot архитектура, как в Qt — требует кодогенерации и тяжело отделяется от инфраструктуры.
Я захотел реализовать собственную систему событий, которая была бы:
-
простой в использовании;
-
понятной в коде;
-
симметричнойЧитать полностью »
Встреча ISO C++ в Софии: С++26 и рефлексия
2025-07-01 в 7:00, admin, рубрики: annotations, c++, c++26, c++29, constexpr, coroutines, exception, executor, executors, parallel programming, ranges, reflection, safety, security, simd, undefined behavior, С++, с++26, с++29
Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса, и сейчас я расскажу о софийской встрече Международного комитета по стандартизации языка программирования C++, в которой принимал активное участие. Это была последняя встреча, на которой новые фичи языка, с предодобренным на прошлых встречах дизайном, ещё могли попасть в C++26.
И результат превзошёл все ожидания:
- compile-time-рефлексия
- рефлексия параметров функций
- аннотации
std::optional<T&>- параллельные алгоритмы
Жизнь в консоли или как я полюбил боль
2025-06-12 в 10:16, admin, рубрики: vim, Настройка Linux, С++Всем привет!
Не судите строго, это моя первая статья не только на Хабр, но и в целом для ИТ мира
Немного о себе - зовут меня Сергей, я начинающий разработчик на С++, большой любитель программирования, Linux и консоли! Именно о последнем мы сегодня и поговорим. Я родился в эпоху повсеместного существования GUI, массивных IDE и всего прочего, и как многие молодые пользователи всегда не любил консоль, даже поступив в ВУЗ на программиста
Моё знакомство с ИТ

Путь от простых хижин к роскошным особнякам, украшенным фресками и колоннами, в PharaohЧитать полностью »
Ошибка компилятора или неожиданный эффект шаблонов в C++?
2025-05-19 в 11:15, admin, рубрики: баги, С++Однажды мне поручили доработать утилиту, которая тестирует набор сервисов, отправляя им запросы по сети и замеряя время их обработки.
Я быстро добавил нужный код, запустил утилиту и... программа тут же упала с ошибкой доступа к памяти. В проекте давно существовал собственный бинарный протокол сообщений, аналогичный protobuf, со своим генератором C++ кода и механизмами кодирования и декодирования. Эта часть кода была старая, и никто не хотел её трогать.
Отладчик показал, что ошибка происходит внутри кода, который парсил сообщения. Я этот код не менял, но на всякий случай сгенерировал его заново — не помогло.
Game++. while (!game(over))
2025-05-06 в 18:55, admin, рубрики: Игры и игровые консоли, разработка игр, С++
Когда деревья были большими, а игровые движки маленькими - выбора писать или не писать свой не стояло - если у тебя нет своего движка, фактически у тебя нет игры. Кто-то покупал чужой движок и наслаждался прекрасными велосипедами импортной сборки, в то время как другие пилили свое, на что уходили месяцы, если не годы.
Путешествие туда и обратно за безопасным ELF-парсером
2025-05-02 в 11:15, admin, рубрики: информационная безопасность, операционные системы, парсинг, Программирование, С++, системное программированиеЖил-был в норе под землей… разработчик группы разработки защитных решений безопасной платформы. Привет! Я Максим Жуков, занимаюсь безопасностью различных аспектов KasperskyOS. Расскажу про один из них, ELF-парсер.
Эта история не про то, как мы в «Лаборатории Касперского» сделали парсер с нуля. А про то, как я отправился в долгое исследовательское путешествие в поисках способа сделать наш существующий парсер безопаснее, что узнал о разных инструментах в пути и какую неожиданную помощь получил от Темного Владыки Мелькора.
RAII 2.0: RAII как архитектурный инструмент в C++
2025-04-15 в 14:16, admin, рубрики: raii, Безопасность кода, жизненный цикл, Логический контракт, паттерны, подписки, С++, транзакции, управление ресурсамиИдиома RAII — давно зарекомендовал себя как удобный способ автоматического управления ресурсами в C++. Обычно мы применяем его для управления памятью, файловыми дескрипторами или мьютексами. Однако что, если расширить понятие RAII до управления не только физическими ресурсами, но и логическими контрактами и состояниями системы?
В этой статье я хочу поговорить о том, как RAII можно использовать для контроля жизненного цикла асинхронных операций, транзакций или подписок, гарантируя их корректное завершение или откат до прежнего состояния.

