A collaborative set of guidelines, rules, and best practices for writing modern, safe, and effective C++ code.
The C++ Core Guidelines are a collaborative set of guidelines, rules, and best practices for writing modern C++ code, led by Bjarne Stroustrup. They aim to help developers use C++11 and newer features effectively, focusing on high-level issues like interfaces, resource management, and concurrency to produce statically type-safe, resource-leak-free, and logically sound code. The guidelines are designed to be supported by analysis tools and are intended for gradual adoption into codebases.
C++ developers, software architects, and teams looking to adopt modern C++ practices, improve code safety, and establish consistent coding standards across projects.
Developers choose the C++ Core Guidelines because they provide authoritative, community-driven recommendations from C++ experts, emphasizing safety, simplicity, and forward-looking practices. They offer a structured path to modernize codebases and reduce errors, backed by tooling support and a focus on real-world applicability.
The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Emphasizes C++11 and newer features, guiding code evolution towards safer and more efficient practices over the next 5-10 years, as stated in the background.
Led by Bjarne Stroustrup with community collaboration, providing authoritative, battle-tested recommendations that are widely respected in the C++ ecosystem.
Built to be supported by static analysis tools, enabling automated checking of violations and practical enforcement, as highlighted in the philosophy.
Intended for incremental introduction into codebases, allowing teams to modernize without disruptive rewrites, supported by planned tooling.
Lacks a strict release cadence, with continuous updates that can lead to instability or confusion for teams relying on a stable standard, as noted in the README.
Effective enforcement requires external tools like GSL, which may not be fully integrated or available across all platforms, adding setup complexity.
With hundreds of rules, full adoption can be daunting for small teams and may introduce cognitive load, slowing initial development progress.