← Ко всем open source проектам

C++ Core Guidelines

isocpp/CppCoreGuidelines

C++ Core Guidelines — совместный набор правил и рекомендаций по более простому, безопасному и современному C++ под руководством Bjarne Stroustrup.

Форки 5,550
Автор isocpp
Язык CSS
Лицензия Не указано
Обновлено 2026-06-27

Что это такое

C++ Core Guidelines — совместный набор правил, рекомендаций и практик по C++.

Проект ведется под руководством Bjarne Stroustrup и вырос из многолетних обсуждений и проектирования в разных организациях.

Главная задача guidelines — помочь писать C++ проще, безопаснее и современнее, не пытаясь заменить сам язык.

Что внутри репозитория

Материалы C++ Core Guidelines покрывают начало работы, контекст и область применения, участие, лицензию, а сами правила лежат в CppCoreGuidelines.md.

Документ специально хранится в GitHub-flavored Markdown и в простом ASCII-формате, чтобы его можно было автоматически обрабатывать, переводить и переформатировать.

Как это обычно используют

C++ Core Guidelines используют разработчики, ревьюеры кода, преподаватели, авторы static analysis инструменты и команды, которые формализуют стиль C++.

Обычный сценарий: читать разделы по темам, выбирать применимые правила, включать проверки в инструменты и обсуждать исключения на code review.

Guideline как проверяемое правило

Фрагмент показывает формат мышления: правило формулирует намерение, а код иллюстрирует безопасный стиль.

Язык: Plain text
Use RAII for resource ownership.
Prefer scoped objects to manual new/delete.
Make ownership visible in types.

Что получается на практике

Сильная сторона проекта — авторитет и широта. Это не личный руководство по стилю, а результат большого профессионального обсуждения C++.

Еще одно преимущество — практическая направленность: правила связаны с безопасностью, владением ресурсами, типами, ошибками и читаемостью.

Ограничения и аккуратные места

Ограничение в том, что guidelines не применяются автоматически. Команде нужно решить, какие правила включать, чем проверять и как работать с устаревшим кодом.

Также C++-код часто живет в разных стандартах языка, поэтому правила нужно адаптировать к версии компилятора и домену.

Кому подойдет

C++ Core Guidelines лучше всего подходят командам, которые хотят улучшать C++ системно, а не через случайные замечания на review.

В каталоге проект важен как документационный репозиторий, который влияет на качество кода через правила, а не через библиотеку.

Для реальной пользы guidelines стоит связать с линтерами, обучением и практикой ревью, иначе документ останется хорошей ссылкой, которую редко открывают.

Для C++ этот репозиторий важен еще и как способ договориться о языке внутри команды. Один и тот же синтаксис может писать безопасный современный код или старый код с ручным управлением ресурсами и скрытыми ошибками. Guidelines помогают перевести разговор из вкусовщины в правила: владение памятью, исключения, границы интерфейсов, типы и инварианты. Но правила работают только тогда, когда команда связала их с ревью, статическим анализом и обучением новых участников.