C++ coding standards based on the C++ Core Guidelines (isocpp.github.io). Use when writing, reviewing, or refactoring C++ code to enforce modern, safe, and idiomatic practices. Only for C++ — not for C or other languages. Triggers on "cpp-coding-standards", "cpp coding standards", "c++ standards".
Scanned 9/19/2026
Install to Claude Code
npx -y skills add majinmagros/magros.ai-skills --skill cpp-coding-standards --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Cpp Coding Standards?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majinmagros-cpp-coding-standards)More formats (shields.io, HTML) on the badges page.
---
name: cpp-coding-standards
description: C++ coding standards based on the C++ Core Guidelines (isocpp.github.io). Use when writing, reviewing, or refactoring C++ code to enforce modern, safe, and idiomatic practices. Only for C++ — not for C or other languages. Triggers on "cpp-coding-standards", "cpp coding standards", "c++ standards".
metadata:
origin: ECC
---
# C++ Coding Standards (C++ Core Guidelines)
Comprehensive coding standards for modern C++ (C++17/20/23) derived from the [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines). Enforces type safety, resource safety, immutability, and clarity.
## When to Use
- Writing new C++ code (classes, functions, templates)
- Reviewing or refactoring existing C++ code
- Making architectural decisions in C++ projects
- Enforcing consistent style across a C++ codebase
- Choosing between language features (e.g., `enum` vs `enum class`, raw pointer vs smart pointer)
### When NOT to Use
- Non-C++ projects
- Legacy C codebases that cannot adopt modern C++ features
- Embedded/bare-metal contexts where specific guidelines conflict with hardware constraints (adapt selectively)
## Cross-Cutting Principles
Prefer compile-time safety over runtime checks: types, `const`, and RAII carry intent so the compiler enforces it. Details per area live in `references/`.
## Contents
| Topic | Reference |
|---|---|
| Philosophy, interfaces (P, I) | `references/philosophy-interfaces.md` |
| Functions (F) | `references/functions.md` |
| Classes (C) | `references/classes.md` |
| Resources, RAII (R) | `references/resources.md` |
| Expressions, init (ES) | `references/expressions.md` |
| Errors, const (E, Con) | `references/errors-const.md` |
| Concurrency, templates (CP, T) | `references/concurrency-templates.md` |
| Stdlib, enums, files, perf | `references/library-misc.md` |
## Example
```cpp
// Rule of Zero: no custom dtor/copy/move needed
class Widget {
std::string name_;
std::unique_ptr<Engine> engine_;
public:
explicit Widget(std::string name)
: name_(std::move(name)), engine_(std::make_unique<Engine>()) {}
};
```
## Quick Reference Checklist
Before marking C++ work complete:
- [ ] No raw `new`/`delete` -- use smart pointers or RAII (R.11)
- [ ] Objects initialized at declaration (ES.20)
- [ ] Variables are `const`/`constexpr` by default (Con.1, ES.25)
- [ ] Member functions are `const` where possible (Con.2)
- [ ] `enum class` instead of plain `enum` (Enum.3)
- [ ] `nullptr` instead of `0`/`NULL` (ES.47)Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!