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 focus on high-level issues like interfaces, resource management, memory safety, and concurrency to help developers create statically type-safe, leak-free, and error-resistant code. The guidelines are designed to be supported by analysis tools and are intended for gradual adoption in codebases.
C++ developers, software architects, and teams looking to adopt modern C++ practices (C++11 and newer) to improve code safety, maintainability, and performance. It's also valuable for organizations establishing coding standards or transitioning legacy codebases.
Developers choose the C++ Core Guidelines because they provide authoritative, community-driven best practices from C++ creators, emphasizing safety and simplicity without sacrificing performance. Unlike informal style guides, they are tool-friendly and designed for real-world applicability, helping teams avoid common pitfalls and write future-proof code.
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.
Led by Bjarne Stroustrup, C++'s creator, ensuring the guidelines align with the language's evolution and future direction, as highlighted in the collaborative effort description.
Prioritizes statically type-safe, resource-leak-free code to catch logic errors, explicitly aiming for a 'smaller, simpler, safer language' as stated in the philosophy.
Rules are designed for static analysis tools, with references like the GSL implementation, facilitating automated enforcement and gradual adoption into codebases.
Intended for incremental introduction, allowing teams to customize and phase in guidelines without needing a full codebase overhaul, as noted in the scope.
No strict release schedule means frequent changes; the README admits it's 'constantly evolving,' which can disrupt tooling and require ongoing updates.
Focuses on high-level issues like interfaces, offering minimal advice on coding style or implementation details, which the scope acknowledges as 'less concerned' with.
Kept intentionally simple in ASCII for post-processing, lacking rich formatting or interactive elements, making it harder to navigate for some users.