mcpField
C
cpp-pro

cpp-pro

github.com/404kidwiz开发121 次安装
代码仓库

关于 cpp-pro

面向 C++20 开发的技能,涵盖现代语言特性、性能调优和系统级编程,适用于构建高性能应用、嵌入式软件及底层系统的开发者。

主要功能

  1. 01C++20 语言特性
  2. 02性能与内存优化
  3. 03SIMD 与无锁技术
  4. 04系统级编程
  5. 05跨平台库与 SDK 开发

适用场景

  1. 01开发游戏引擎与仿真程序
  2. 02构建嵌入式或系统软件
  3. 03将旧版 C++ 代码现代化
  4. 04优化性能关键代码

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill cpp-pro

安装后在 Claude Code 中输入/cpp-pro确认已加载。

附带文件EXAMPLES.mdREFERENCE.md

详细介绍

C++ 专业能力

用途

提供专业的 C++20 编程能力,专注于现代 C++ 特性(概念、模块、Ranges、协程)、性能优化和系统级编程。擅长构建高性能应用、嵌入式系统、游戏引擎和底层系统软件,同时确保内存安全和资源利用最优。

适用场景

  • 构建需要 C++ 速度的高性能应用(游戏引擎、模拟程序)
  • 实现系统级软件(设备驱动程序、操作系统、嵌入式系统)
  • 优化对性能要求高的代码(SIMD、缓存优化、无锁编程)
  • 将遗留 C++ 代码库迁移到现代 C++20 标准
  • 构建跨平台 C++ 库和 SDK
  • 实现模板元编程和编译期优化
  • 使用现代 C++20 特性(概念、模块、Ranges、协程)

快速入门

在以下场景调用此技能:

  • 构建高性能 C++ 应用(游戏、模拟程序、交易系统)
  • 系统级编程(设备驱动程序、嵌入式系统、操作系统)
  • 性能优化(SIMD、缓存、无锁编程)
  • 使用现代 C++20 特性(概念、模块、Ranges、协程)
  • 模板元编程和编译期计算
  • 跨平台库开发

以下场景请勿调用:

  • Web 开发 → 使用 frontend-developer 或 backend-developer
  • 脚本任务 → 使用 python-pro 或 javascript-pro
  • 无性能需求的简单实用工具 → 使用合适的语言
  • 移动开发 → 使用 swift-expert 或 kotlin-specialist

核心能力

C++20 现代特性
  • 概念:类型约束和模板要求
  • 模块:用可导入模块替代头文件
  • Ranges:惰性求值算法和视图
  • 协程:使用 co_await 进行异步编程
  • 三路比较运算符:三路比较 <=>
  • 指定初始化器:按名称初始化结构体成员
  • std::format:类型安全的字符串格式化
  • std::span:不转移所有权的安全数组视图
  • std::jthread:支持自动 join 的线程
性能优化
  • 模板元编程:编译期计算
  • SIMD 编程:用于并行处理的向量指令
  • 内存管理:智能指针、分配器、内存池
  • 缓存感知算法:面向数据的设计模式
  • 无锁编程:原子操作和内存顺序
  • 编译器优化:基于性能分析的优化、链接时优化
系统编程
  • 底层 I/O:文件描述符、套接字、epoll/kqueue
  • 内存映射:共享内存、内存映射文件
  • 进程管理:fork、exec、信号处理
  • 系统调用:POSIX/Linux 系统接口
  • 嵌入式系统:裸机编程、实时约束

决策框架

C++ 特性选择
C++20 Feature Decision
├─ Type constraints needed
│   └─ Use concepts instead of SFINAE
│       • Clearer error messages
│       • More readable templates
│
├─ Header file management
│   └─ Use modules for new projects
│       • Faster compilation
│       • Better encapsulation
│
├─ Data transformations
│   └─ Use ranges for lazy evaluation
│       • Composable algorithms
│       • Memory efficient
│
├─ Async operations
│   └─ Use coroutines for I/O-bound work
│       • Efficient state machines
│       • Readable async code
│
└─ Error handling
    ├─ Recoverable errors → std::expected
    ├─ Exceptional cases → exceptions
    └─ Low-level code → return codes
性能优化矩阵
瓶颈解决方案复杂度
CPU 密集型计算SIMD、并行处理高
内存分配内存池、分配器中
缓存未命中面向数据的设计高
锁竞争无锁数据结构非常高
编译时间模块、预编译头文件低

最佳实践

现代 C++ 开发
  • 优先组合而非继承:使用值语义和组合
  • const 正确性:尽可能将成员函数标记为 const
  • 适当使用 noexcept:将不会抛出异常的函数标记为 noexcept
  • 显式优于隐式:使用 explicit 构造函数和转换运算符
  • 始终使用 RAII:将所有资源封装在 RAII 对象中
性能优化
  • 先分析性能再优化:使用 perf、VTune 或 Tracy
  • 零规则:仅在必要时定义析构函数、复制和移动操作
  • 移动语义:按值返回,并依赖移动语义
  • 谨慎使用内联:交由编译器决定;关注缓存友好的数据
  • 衡量缓存效率:缓存未命中往往代价更高
模板元编程
  • 优先使用 Concepts,而非 SFINAE:使用 Concepts,让模板约束更清晰
  • 尽可能使用 constexpr:将计算移至编译期
  • 类型特征:使用 std::type_traits 进行编译期内省
  • 可变参数模板:使用参数包实现灵活的函数
并发与并行
  • 避免过早加锁:高争用场景可考虑无锁方案
  • 理解内存顺序:显式使用 std::memory_order
  • Future/Promise 模式:使用 std::future 获取异步结果
  • 使用协程处理 I/O:使用 C++20 协程实现异步 I/O
  • 线程池:优先使用线程池,而非创建线程
系统级编程
  • 零开销抽象:编写能够高效编译的高级代码
  • 显式处理错误:使用 std::expected,避免异常
  • 资源管理:始终贯彻 RAII
  • 平台抽象:隔离特定于平台的代码
  • 测试策略:使用单元测试、模糊测试和基于属性的测试

反模式

内存管理
  • 直接使用 new/delete:改用智能指针
  • 手动管理资源:应用 RAII
  • 悬空指针:使用所有权语义
性能
  • 过早优化:先分析性能
  • 虚函数调用开销:性能至关重要时使用 CRTP
  • 不必要的复制:使用移动语义和引用
代码组织
  • 所有内容都只放在头文件中:使用模块或适当的编译单元
  • 滥用宏:使用 constexpr、模板和内联函数
  • 全局状态:使用依赖注入

其他资源

评论

支持 Markdown