Assists with high-performance modern C++ development, optimization, and debugging.

Install

mkdir -p .claude/skills/cpp-pro-sleepyvani && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14854" && unzip -o skill.zip -d .claude/skills/cpp-pro-sleepyvani && rm skill.zip

Installs to .claude/skills/cpp-pro-sleepyvani

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

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.
384 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Advanced

Key capabilities

  • Analyze C++ architecture and build systems
  • Design type-safe interfaces using C++20 concepts
  • Implement zero-overhead abstractions with RAII and constexpr
  • Verify code quality with sanitizers and static analysis
  • Benchmark and optimize C++ code for performance
  • Address concurrency issues with atomics and thread pools

How it works

This skill follows a core workflow of analyzing architecture, designing with concepts, implementing zero-cost abstractions, verifying quality, and benchmarking to produce optimized C++ applications.

Inputs & outputs

You give it
C++ application code or a C++ development task
You get back
Optimized, debugged, and high-quality C++ code adhering to modern standards

When to use cpp-pro

  • Optimize C++ performance
  • Implement template metaprogramming
  • Debug memory leaks
  • Configure CMake build systems

About this skill

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:

TopicReferenceLoad When
Modern C++ Featuresreferences/modern-cpp.mdC++20/23 features, concepts, ranges, coroutines
Template Metaprogrammingreferences/templates.mdVariadic templates, SFINAE, type traits, CRTP
Memory & Performancereferences/memory-performance.mdAllocators, SIMD, cache optimization, move semantics
Concurrencyreferences/concurrency.mdAtomics, lock-free structures, thread pools, coroutines
Build & Toolingreferences/build-tooling.mdCMake, 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)

// 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

// 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

// 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

Limitations

  • Must not use raw `new`/`delete`.
  • Must not ignore compiler warnings.
  • Must not use C-style casts.

How it compares

This skill emphasizes modern C++20/23 features, template metaprogramming, and high-performance systems techniques, providing a specialized approach compared to generic C++ development.

Compared to similar skills

cpp-pro side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
cpp-pro (this skill)05moNo flagsAdvanced
unreal-engine-cpp-pro434moNo flagsAdvanced
cpp-pro184moNo flagsAdvanced
llvm-tooling16moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry