SuperAPI AI 工具集

cpp-systems

编程与开发

查看项目

更新于 10-15 22:17

技能介绍

用途:面向现代 C++ 系统与库开发,以 C++17 为基线,在项目标准允许时使用 C++20 特性。纯 C 场景(手动生命周期、状态枚举、原生扩展)另见 ia-c-systems 技能。

主要能力:明确资源所有权并用 RAII 保证每条退出路径都释放;让借用视图不超出底层存储生命周期;遵循项目错误模型与语言标准;保持 ABI 稳定,避免持锁或持有可失效迭代器时调用未知回调。

使用方式:仓库约定优先于本技能。先查 CMakeLists.txt 的 CXX_STANDARD,读 .clang-format 与 .clang-tidy,并阅读相邻两个翻译单元再动手。所有权上,std::unique_ptr 为默认独占所有权,std::shared_ptr 仅在生命周期真正共享时使用,std::weak_ptr 用于打破循环;裸 T*/T& 表示非拥有观察。新公共 API 用 std::span(C++20)或指针加长度表示借用连续区间。遵循 rule of zero/five:声明析构、拷贝或移动中任一者,就需推敲全部五个;用户声明析构会抑制隐式移动。

验证:以 -Wall -Wextra -Wpedantic -Wshadow -Wconversion -Werror 干净构建;clang-tidy 无新增告警;测试在 -fsanitize=address,undefined 下零报告;涉及线程的改动在 TSan 下零报告;clang-format --dry-run --Werror 无差异。

限制:资料未提供安装命令、收费与平台信息。约束冲突时以本地约束为准,例如 -fno-exceptions 下用错误码或 expected 类,标准低于 C++17 时不可用 std::optional/string_view/结构化绑定/if constexpr,ABI 稳定头文件不得改布局、内联函数或新增虚函数,嵌入式或无宿主目标可能无 RTTI、无动态分配、无 STL 容器。偏离约束时需在偏离处注释说明。