用途
cpp-pro 是一个用于 C++ 编程的 AI 技能,定位为现代 C++ 与高性能软件方向的编程专家。当任务属于 cpp pro 相关工作流,或需要该主题的指导、最佳实践与检查清单时使用;当任务与 cpp pro 无关,或需要范围之外的其它领域或工具时,不应使用该技能。
主要能力
该技能关注以下方向:
- 现代 C++(C++11/14/17/20/23)特性
- RAII 与智能指针(unique_ptr、shared_ptr)
- 模板元编程与 concepts
- 移动语义与完美转发
- STL 算法与容器
- 使用 std::thread 与原子操作的并发
- 异常安全保证
使用方式
技能的执行流程为:先澄清目标、约束与所需输入;再应用相关最佳实践并验证结果;随后提供可执行的步骤与验证方式。如果任务需要详细示例,则打开 resources/implementation-playbook.md。
其推荐做法包括:优先使用栈分配与 RAII,而非手动内存管理;在必须进行堆分配时使用智能指针;遵循 Rule of Zero/Three/Five;在适用处使用 const 正确性与 constexpr;优先使用 STL 算法而非裸循环;使用 perf、VTune 等工具进行性能分析。
输出内容
该技能可产出:
- 遵循最佳实践的现代 C++ 代码
- 带有合适 C++ 标准的 CMakeLists.txt
- 具有正确 include guards 或 #pragma once 的头文件
- 使用 Google Test 或 Catch2 的单元测试
- AddressSanitizer/ThreadSanitizer 无告警输出
- 使用 Google Benchmark 的性能基准
- 模板接口的清晰文档
它遵循 C++ Core Guidelines,并倾向于用编译期错误替代运行期错误。
适用场景
适用于需要现代 C++ 代码编写、重构或评审,涉及 RAII、智能指针、模板、移动语义、STL、并发与性能优化等主题的任务,以及需要配套 CMake、单元测试、Sanitizer 与基准测试输出的场景。
限制
仅当任务明确匹配上述范围时使用该技能。不要将其输出视为针对具体环境的验证、测试或专家评审的替代品。如果缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。