modern-cpp
Помогает писать и модернизировать C++-код с использованием современных идиом (C++20/23/26). Заменяет сырые указатели на умные, SFINAE на концепты, printf на std::print, а коды ошибок на std::expected. Полезно для нового кода и безопасности.
Что делает навык
Навык предоставляет руководство по написанию и модернизации C++-кода с использованием идиом C++20, C++23 и C++26, фокусируясь на устранении уязвимостей и сокращении шаблонного кода. Он помогает заменять устаревшие паттерны (сырые указатели, SFINAE, printf) на современные безопасные аналоги (умные указатели, концепты, std::expected).
Когда применять
- Написание новых C++ функций, классов или библиотек с использованием современных идиом по умолчанию.
- Модернизация существующего кода (до C++20) с приоритетом по уровню безопасности (память > типы > стиль).
- Работа над критичным к безопасности или безопасным C++-кодом с включением флагов жесткого контроля компилятора.
- Проверка C++-кода на соответствие современным идиомам и выявление антипаттернов.
Как работает
- Определить контекст: если пишется новый код, использовать современные идиомы (C++20/23); если модернизация — начинать с замен Tier 1.
- Заменить антипаттерны на рекомендуемые аналоги: например, new/delete на std::make_unique, SFINAE на концепты, printf на std::print.
- Для критичного кода включить флаги жесткого контроля компилятора (-D_FORTIFY_SOURCE=3, -fstack-protector-strong) и санитайзеры (ASan, UBSan) в CI.
- При использовании C++26 планировать внедрение Reflection для устранения шаблонного кода, но осторожно относиться к Contracts и std::execution.
- Следовать чек-листу: использовать умные указатели для владения, std::span для параметров, constexpr для вычислений на этапе компиляции.
Примеры запросов агенту
Описание составлено по SKILL.md навыка, сверено 09.10.2026.
Как подключить
SKILL.md к навыкам ассистентаНавык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.