SuperAPI AI 工具集

cpp-pro

编程与开发

查看项目

更新于 10-16 09:08

技能介绍

C++ Pro 是一个面向现代 C++ 开发的高级技能,定位为资深 C++ 开发者,专长于现代 C++20/23、系统编程、高性能计算与零开销抽象。

用途 该技能用于编写、优化和调试 C++ 应用程序,覆盖现代 C++20/23 特性、模板元编程以及高性能系统技术。适合在需要现代 C++ 重构、性能调优、并发与内存安全审查的工程场景中使用。

核心工作流

  1. 分析架构:审查构建系统、编译器标志与性能需求。
  2. 基于概念设计:使用 C++20 concepts 创建类型安全接口。
  3. 零开销实现:应用 RAII、constexpr 与零开销抽象。
  4. 质量验证:运行 sanitizer 与静态分析;如果 AddressSanitizer 或 UndefinedBehaviorSanitizer 报告问题,在继续之前修复所有内存与未定义行为错误。
  5. 基准测试:使用真实工作负载进行性能分析;如果未达到性能目标,应用针对性优化(SIMD、缓存布局、移动语义)并重新测量。

参考指南 技能根据上下文加载详细指导,涵盖以下主题:

  • 现代 C++ 特性:references/modern-cpp.md,适用于 C++20/23 特性、concepts、ranges、协程。
  • 模板元编程:references/templates.md,适用于可变参数模板、SFINAE、类型特征、CRTP。
  • 内存与性能:references/memory-performance.md,适用于分配器、SIMD、缓存优化、移动语义。
  • 并发:references/concurrency.md,适用于原子操作、无锁结构、线程池、协程。
  • 构建与工具链:references/build-tooling.md,适用于 CMake、sanitizer、静态分析、测试。

约束 必须做:

  • 遵循 C++ Core Guidelines
  • 使用 concepts 约束模板
  • 普遍应用 RAII
  • 使用 auto 进行类型推导
  • 优先使用 std::unique_ptr 与 std::shared_ptr
  • 启用所有编译器警告(-Wall -Wextra -Wpedantic)
  • 运行 AddressSanitizer 与 UndefinedBehaviorSanitizer
  • 编写 const 正确的代码

禁止做:

  • 使用裸 new/delete(优先使用智能指针)
  • 忽略编译器警告
  • 使用 C 风格转换(使用 static_cast 等)
  • 不一致地混用异常与错误码模式
  • 编写非 const 正确的代码
  • 在头文件中使用 using namespace std
  • 忽略未定义行为
  • 对昂贵类型跳过移动语义

关键模式 概念定义(C++20):通过 concept 定义可复用、自文档化的约束,例如 Numeric 概念结合 std::integral 与 std::floating_point,并用于 clamp 函数模板。

RAII 资源封装:封装原始句柄,调用点无需手动清理。示例 FileHandle 类在构造时打开文件,析构时关闭;禁止拷贝,支持移动,使用 std::exchange 转移句柄。

智能指针所有权:优先使用 make_unique / make_shared,避免裸 new/delete。示例包括用 std::make_unique 创建缓冲区,仅在确实需要共享所有权时使用 std::make_shared 创建配置对象。

输出模板 实现 C++ 功能时,提供:

  • 包含接口与模板的头文件
  • 实现文件(如需要)
  • CMakeLists.txt 更新(如适用)
  • 演示用法的测试文件
  • 设计决策与性能特征的简要说明

适用场景 适用于现代 C++ 项目开发、性能敏感系统、并发与内存安全要求较高的代码库,以及需要遵循 C++ Core Guidelines 和零开销抽象原则的工程实践。

限制 资料未提供关于收费、价格、平台支持范围或具体效果保证的信息。该技能为文档与工作流指导性质,实际效果取决于项目环境与使用方式。