Volver al ranking

The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++

Crecimiento de estrellas
Estrellas
45.2k
Forks
5.5k
Crecimiento semanal
Issues
241
10k20k30k40k
sept 2015abr 2019dic 2022jul 2026
Artefactosnpmnpm install cppcoreguidelines
README

C++ Core Guidelines

"Within C++ is a smaller, simpler, safer language struggling to get out."
-- Bjarne Stroustrup

The C++ Core Guidelines are a collaborative effort led by Bjarne Stroustrup, much like the C++ language itself. They are the result of many person-years of discussion and design across a number of organizations. Their design encourages general applicability and broad adoption but they can be freely copied and modified to meet your organization's needs.

Getting started

The guidelines themselves are found at CppCoreGuidelines. The document is in GH-flavored MarkDown. It is intentionally kept simple, mostly in ASCII, to allow automatic post-processing such as language translation and reformatting. The editors maintain one version formatted for browsing. Note that it is manually integrated and can be slightly older than the version in the master branch.

The Guidelines are a constantly evolving document without a strict "release" cadence. Bjarne Stroustrup periodically reviews the document and increments the version number in the introduction. Checkins that increment the version number are tagged in git.

Many of the guidelines make use of the header-only Guidelines Support Library. One implementation is available at GSL: Guidelines Support Library.

Background and scope

The aim of the guidelines is to help people to use modern C++ effectively. By "modern C++" we mean C++11 and newer. In other words, what would you like your code to look like in 5 years' time, given that you can start now? In 10 years' time?

The guidelines are focused on relatively higher-level issues, such as interfaces, resource management, memory management, and concurrency. Such rules affect application architecture and library design. Following the rules will lead to code that is statically type-safe, has no resource leaks, and catches many more programming logic errors than is common in code today. And it will run fast -- you can afford to do things right.

We are less concerned with low-level issues, such as naming conventions and indentation style. However, no topic that can help a programmer is out of bounds.

Our initial set of rules emphasizes safety (of various forms) and simplicity. They may very well be too strict. We expect to have to introduce more exceptions to better accommodate real-world needs. We also need more rules.

You will find some of the rules contrary to your expectations or even contrary to your experience. If we haven't suggested that you change your coding style in any way, we have failed! Please try to verify or disprove rules! In particular, we'd really like to have some of our rules backed up with measurements or better examples.

You will find some of the rules obvious or even trivial. Please remember that one purpose of a guideline is to help someone who is less experienced or coming from a different background or language to get up to speed.

The rules are designed to be supported by an analysis tool. Violations of rules will be flagged with references (or links) to the relevant rule. We do not expect you to memorize all the rules before trying to write code.

The rules are meant for gradual introduction into a code base. We plan to build tools for that and hope others will too.

Contributions and LICENSE

Comments and suggestions for improvements are most welcome. We plan to modify and extend this document as our understanding improves and the language and the set of available libraries improve. More details are found at CONTRIBUTING and LICENSE.

Thanks to DigitalOcean for hosting the Standard C++ Foundation website.

Repositorios relacionados
animate-css/animate.css

🍿 A cross-browser library of CSS animations. As easy to use as an easy thing.

CSSnpmOthercss-animationscss
animate.style
82.7k16k
ryanoasis/nerd-fonts

Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more

CSSnpmOtherfontspatched-fonts
nerdfonts.com
63.8k3.9k
necolas/normalize.css

A modern alternative to CSS resets

CSSnpmMIT Licensecsscss-reset
necolas.github.io/normalize.css/
53.5k10.4k
jgthms/bulma

Modern CSS framework based on Flexbox

CSSnpmMIT Licensecsshtml
bulma.io
50.1k3.9k
bradtraversy/50projects50days

50+ mini web projects using HTML, CSS & JS

CSSnpmMIT License
40.6k9.7k
FreeCodeCampChina/freecodecamp.cn

FCC China open source codebase and curriculum. Learn to code and help nonprofits.

CSSnpmOtherfreecodecampcn-freecodecamp
fcc.asia
37.7k1.4k
hehonghui/awesome-english-ebooks

经济学人(含音频)、纽约客、卫报、连线、大西洋月刊等英语杂志免费下载,支持epub、mobi、pdf格式, 每周更新

CSSnpmdownloadebooks
33.9k2.8k
houshanren/hangzhou_house_knowledge

2017年买房经历总结出来的买房购房知识分享给大家,希望对大家有所帮助。买房不易,且买且珍惜。Sharing the knowledge of buy an own house that according to the experience at hangzhou in 2017 to all the people. It's not easy to buy a own house, so I hope that it would be useful to everyone.

CSSnpmhangzhouknowledge
26.9k5.2k
adobe-fonts/source-code-pro

Monospaced font family for user interface and coding environments

CSSnpmSIL Open Font License 1.1opentype-fontsotf
adobe-fonts.github.io/source-code-pro/
20.4k1.6k
dhg/Skeleton

Skeleton: A Dead Simple, Responsive Boilerplate for Mobile-Friendly Development

CSSnpmMIT License
getskeleton.com
19.4k3.1k
uvdesk/community-skeleton

UVdesk Open Source Community Helpdesk is a comprehensive ticketing support system designed for everyone, offering robust features to streamline customer support and collaboration.

CSSnpmOpen Software License 3.0ticketing-systemsymfony4
uvdesk.com
19.4k564
tobiasahlin/SpinKit

A collection of loading indicators animated with CSS

CSSnpmMIT License
tobiasahlin.com/spinkit/
19.3k1.8k