cpp-pro — скилл для Claude Code: C++20/23, оптимизация и установка
Пишет, оптимизирует и отлаживает C++ с concepts, ranges, корутинами, SIMD и шаблонной метапрограммированием. Пригодится для проектов на C++20/23, где нужна производительность и чёткая типизация.
npx skills add Jeffallan/claude-skills --skill cpp-pro -a claude-codeЧто делает cpp-pro
Скилл работает с современным C++: создаёт интерфейсы через concept, применяет RAII и умные указатели, настраивает сборку в CMake с санитайзерами. Умеет в шаблонную метапрограммирование, SIMD-оптимизацию, lock-free структуры и управление памятью без накладных расходов.
Встроен пятишаговый цикл: анализ архитектуры, проектирование через concepts, реализация с zero-cost абстракциями, проверка санитайзерами (AddressSanitizer, UndefinedBehaviorSanitizer) и профилирование. Если санитайзер находит UB или утечку, скилл останавливается и требует исправления — это повод держать проверки включёнными с самого начала. Для оптимизации использует целевые техники: выравнивание кеша, move-семантику, векторизацию.
Какие задачи решает
- написать типобезопасный API с C++20 concepts
- оптимизировать производительность через SIMD и выравнивание памяти
- настроить CMake с санитайзерами и статическим анализом
- отладить undefined behavior и race conditions
- портировать легаси-код на C++20/23 с ranges и корутинами
Примеры запросов агенту
- оптимизируй этот класс под C++20 concepts и убери сырые указатели
- добавь SIMD-векторизацию в обработку массива `data.cpp`
- настрой `CMakeLists.txt` с AddressSanitizer и включи `-Wall -Wextra`
Как установить cpp-pro
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a claude-code2Вручную: положить файлы
~/.claude/skills/cpp-pro/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/cpp-pro/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a codex2Вручную: положить файлы
.agents/skills/cpp-pro/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a cursor2Вручную: положить файлы
.cursor/skills/cpp-pro/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills cpp-pro2Вручную: положить файлы
.github/skills/cpp-pro/SKILL.md1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a gemini-cli2Командой платформы
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/cpp-proВручную: положить файлы
.devin/skills/cpp-pro/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill cpp-pro -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора61
Весь набор →Похожие
Вопросы о cpp-pro
Как установить cpp-pro в Claude Code?
Выполни npx skills add Jeffallan/claude-skills --skill cpp-pro -a claude-code. Скилл появится в ~/.claude/skills/cpp-pro/SKILL.md.
Что делает cpp-pro?
Пишет и оптимизирует C++ с современными фичами C++20/23: concepts, ranges, корутины, SIMD. Настраивает CMake, запускает санитайзеры, профилирует производительность и исправляет UB.
Что нужно для работы cpp-pro?
Компилятор с поддержкой C++20/23, CMake, санитайзеры (AddressSanitizer, UndefinedBehaviorSanitizer). Скилл включает флаги -Wall -Wextra -Wpedantic и требует исправления всех предупреждений.
Исходный текст
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