{"id":13392471,"url":"https://github.com/isocpp/CppCoreGuidelines","last_synced_at":"2025-03-13T18:31:51.999Z","repository":{"id":36751406,"uuid":"41058054","full_name":"isocpp/CppCoreGuidelines","owner":"isocpp","description":"The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++","archived":false,"fork":false,"pushed_at":"2024-10-24T18:51:07.000Z","size":27081,"stargazers_count":42730,"open_issues_count":245,"forks_count":5437,"subscribers_count":1968,"default_branch":"master","last_synced_at":"2024-10-29T10:54:45.779Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/isocpp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-19T20:22:52.000Z","updated_at":"2024-10-29T07:02:28.000Z","dependencies_parsed_at":"2023-02-16T03:16:11.971Z","dependency_job_id":"e77fd33a-535e-4d6c-8d5d-1203f942f248","html_url":"https://github.com/isocpp/CppCoreGuidelines","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isocpp%2FCppCoreGuidelines","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isocpp%2FCppCoreGuidelines/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isocpp%2FCppCoreGuidelines/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isocpp%2FCppCoreGuidelines/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isocpp","download_url":"https://codeload.github.com/isocpp/CppCoreGuidelines/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242951042,"owners_count":20211571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T17:00:21.401Z","updated_at":"2025-03-13T18:31:50.883Z","avatar_url":"https://github.com/isocpp.png","language":"CSS","readme":"[![C++ Core Guidelines](cpp_core_guidelines_logo_text.png)](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)\n\n\u003e\"Within C++ is a smaller, simpler, safer language struggling to get out.\"\n\u003e-- \u003ccite\u003eBjarne Stroustrup\u003c/cite\u003e\n\nThe [C++ Core Guidelines](CppCoreGuidelines.md) are a collaborative effort led by Bjarne Stroustrup, much like the C++ language itself. They are the result of many\nperson-years of discussion and design across a number of organizations. Their design encourages general applicability and broad adoption but\nthey can be freely copied and modified to meet your organization's needs.\n\n## Getting started\n\nThe guidelines themselves are found at [CppCoreGuidelines](CppCoreGuidelines.md). The document is in [GH-flavored MarkDown](https://github.github.com/gfm/). It is intentionally kept simple, mostly in ASCII, to allow automatic post-processing such as language translation and reformatting. The editors maintain one\n[version formatted for browsing](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines). Note that it is manually integrated and can be slightly older than the version in the master branch.\n\nThe 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](https://github.com/isocpp/CppCoreGuidelines/releases) are tagged in git. \n\nMany of the guidelines make use of the header-only Guidelines Support Library. One implementation is available at [GSL: Guidelines Support Library](https://github.com/Microsoft/GSL).\n\n## Background and scope\n\nThe aim of the guidelines is to help people to use modern C++ effectively. By \"modern C++\" we mean C++11 and newer. In other\nwords, what would you like your code to look like in 5 years' time, given that you can start now? In 10 years' time?\n\nThe guidelines are focused on relatively higher-level issues, such as interfaces, resource management, memory management, and concurrency. Such\nrules affect application architecture and library design. Following the rules will lead to code that is statically type-safe, has no resource\nleaks, 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.\n\nWe are less concerned with low-level issues, such as naming conventions and indentation style. However, no topic that can help a programmer is\nout of bounds.\n\nOur initial set of rules emphasizes safety (of various forms) and simplicity. They may very well be too strict. We expect to have to introduce\nmore exceptions to better accommodate real-world needs. We also need more rules.\n\nYou 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\ncoding 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\nbacked up with measurements or better examples.\n\nYou 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\nexperienced or coming from a different background or language to get up to speed.\n\nThe rules are designed to be supported by an analysis tool. Violations of rules will be flagged with references (or links) to the relevant rule.\nWe do not expect you to memorize all the rules before trying to write code.\n\nThe rules are meant for gradual introduction into a code base. We plan to build tools for that and hope others will too.\n\n## Contributions and LICENSE\n\nComments and suggestions for improvements are most welcome. We plan to modify and extend this document as our understanding improves and the\nlanguage and the set of available libraries improve. More details are found at [CONTRIBUTING](./CONTRIBUTING.md) and [LICENSE](./LICENSE).\n\nThanks to [DigitalOcean](https://www.digitalocean.com/?refcode=32f291566cf7\u0026utm_campaign=Referral_Invite\u0026utm_medium=Referral_Program\u0026utm_source=CopyPaste) for hosting the Standard C++ Foundation website.\n","funding_links":[],"categories":["Best Practices","HarmonyOS","Coding Style","CSS","C++","Python","Programming Language Tutorials","Books","C/C++ 程序设计","Books/Documents","Cpp","Uncategorized","ETC"],"sub_categories":["Windows Manager","C++/C","常见问题 QA","网络服务_其他","Computer Science","Uncategorized","C++ References / Guidelines"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisocpp%2FCppCoreGuidelines","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisocpp%2FCppCoreGuidelines","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisocpp%2FCppCoreGuidelines/lists"}