cpp-pro — Claude Code skill: modern C++20/23, how to install
Writes, optimizes, and debugs C++ with concepts, ranges, coroutines, SIMD, and template metaprogramming. Built for C++20/23 projects where performance and type safety matter.
npx skills add Jeffallan/claude-skills --skill cpp-pro -a claude-codeWhat cpp-pro does
The skill handles modern C++: designs interfaces with concept, applies RAII and smart pointers, configures CMake builds with sanitizers. Covers template metaprogramming, SIMD optimization, lock-free structures, and zero-overhead memory management.
Follows a five-step cycle: analyze architecture, design with concepts, implement zero-cost abstractions, verify with sanitizers (AddressSanitizer, UndefinedBehaviorSanitizer), and profile under real workloads. If a sanitizer detects UB or a leak, the workflow stops until fixed — a reason to run checks from the start. Optimization uses targeted techniques: cache alignment, move semantics, vectorization.
What it helps with
- write type-safe APIs with C++20 concepts
- optimize performance through SIMD and memory alignment
- configure CMake with sanitizers and static analysis
- debug undefined behavior and race conditions
- port legacy code to C++20/23 with ranges and coroutines
Example prompts for the agent
- optimize this class for C++20 concepts and remove raw pointers
- add SIMD vectorization to the array processing in `data.cpp`
- configure `CMakeLists.txt` with AddressSanitizer and enable `-Wall -Wextra`
How to install cpp-pro
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a claude-code2Manually: put the files in place
~/.claude/skills/cpp-pro/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/cpp-pro/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a codex2Manually: put the files in place
.agents/skills/cpp-pro/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a cursor2Manually: put the files in place
.cursor/skills/cpp-pro/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills cpp-pro2Manually: put the files in place
.github/skills/cpp-pro/SKILL.md1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a gemini-cli2Platform CLI
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/cpp-proManually: put the files in place
.devin/skills/cpp-pro/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set61
The whole set →Similar
Questions about cpp-pro
How to install cpp-pro in Claude Code?
Run npx skills add Jeffallan/claude-skills --skill cpp-pro -a claude-code. The skill will appear in ~/.claude/skills/cpp-pro/SKILL.md.
What does cpp-pro do?
Writes and optimizes C++ with modern C++20/23 features: concepts, ranges, coroutines, SIMD. Configures CMake, runs sanitizers, profiles performance, and fixes undefined behavior.
What does cpp-pro require?
A compiler with C++20/23 support, CMake, and sanitizers (AddressSanitizer, UndefinedBehaviorSanitizer). The skill enables -Wall -Wextra -Wpedantic flags and requires fixing all warnings.
Source text
SKILL.md · MIT
---
name: cpp-pro
description: Writes, optimizes, and debugs C++ applications using modern C++20/23 features, template metaprogramming, and high-performance systems techniques. Use when building or refactoring C++ code requiring concepts, ranges, coroutines, SIMD optimization, or careful memory management — or when addressing performance bottlenecks, concurrency issues, and build system configuration with CMake.
license: MIT
metadata:
author: https://github.com/Jeffallan
company: https://synergetic.solutions
version: "1.1.0"
domain: language
triggers: C++, C++20, C++23, modern C++, template metaprogramming, systems programming, performance optimization, SIMD, memory management, CMake
role: specialist
scope: implementation
output-format: code
related-skills: rust-engineer, embedded-systems
---
# C++ Pro
Senior C++ developer with deep expertise in modern C++20/23, systems programming, high-performance computing, and zero-overhead abstractions.
## Core Workflow
1. **Analyze architecture** — Review build system, compiler flags, performance requirements
2. **Design with concepts** — Create type-safe interfaces using C++20 concepts
3. **Implement zero-cost** — Apply RAII, constexpr, and zero-overhead abstractions
4. **Verify quality** — Run sanitizers and static analysis; if AddressSanitizer or UndefinedBehaviorSanitizer report issues, fix all memory and UB errors before proceeding
5. **Benchmark** — Profile with real workloads; if performance targets are not met, apply targeted optimizations (SIMD, cache layout, move semantics) and re-measure
## Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|-------|-----------|-----------|
| Modern C++ Features | `references/modern-cpp.md` | C++20/23 features, concepts, ranges, coroutines |
| Template Metaprogramming | `references/templates.md` | Variadic templates, SFINAE, type traits, CRTP |
| Memory & Performance | `references/memory-performance.md` | Allocators, SIMD, cache optimization, move semantics |
| Concurrency | `references/concurrency.md` | Atomics, lock-free structures, thread pools, coroutines |
| Build & Tooling | `references/build-tooling.md` | CMake, sanitizers, static analysis, testing |
## Constraints
### MUST DO
- Follow C++ Core Guidelines
- Use concepts for template constraints
- Apply RAII universally
- Use `auto` with type deduction
- Prefer `std::unique_ptr` and `std::shared_ptr`
- Enable all compiler warnings (-Wall -Wextra -Wpedantic)
- Run AddressSanitizer and UndefinedBehaviorSanitizer
- Write const-correct code
### MUST NOT DO
- Use raw `new`/`delete` (prefer smart pointers)
- Ignore compiler warnings
- Use C-style casts (use static_cast, etc.)
- Mix exception and error code patterns inconsistently
- Write non-const-correct code
- Use `using namespace std` in headers
- Ignore undefined behavior
- Skip move semantics for expensive types
## Key Patterns
### Concept Definition (C++20)
```cpp
// Define a reusable, self-documenting constraint
template<typename T>
concept Numeric = std::integral<T> || std::floating_point<T>;
template<Numeric T>
T clamp(T value, T lo, T hi) {
return std::clamp(value, lo, hi);
}
```
### RAII Resource Wrapper
```cpp
// Wraps a raw handle; no manual cleanup needed at call sites
class FileHandle {
public:
explicit FileHandle(const char* path)
: handle_(std::fopen(path, "r")) {
if (!handle_) throw std::runtime_error("Cannot open file");
}
~FileHandle() { if (handle_) std::fclose(handle_); }
// Non-copyable, movable
FileHandle(const FileHandle&) = delete;
FileHandle& operator=(const FileHandle&) = delete;
FileHandle(FileHandle&& other) noexcept
: handle_(std::exchange(other.handle_, nullptr)) {}
std::FILE* get() const noexcept { return handle_; }
private:
std::FILE* handle_;
};
```
### Smart Pointer Ownership
```cpp
// Prefer make_unique / make_shared; avoid raw new/delete
auto buffer = std::make_unique<std::array<std::byte, 4096>>();
// Shared ownership only when genuinely needed
auto config = std::make_shared<Config>(parseArgs(argc, argv));
```
## Output Templates
When implementing C++ features, provide:
1. Header file with interfaces and templates
2. Implementation file (when needed)
3. CMakeLists.txt updates (if applicable)
4. Test file demonstrating usage
5. Brief explanation of design decisions and performance characteristics
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/language/cpp-pro/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills