C++ — 避免常见 C++ 错误

v1.0.1

此技能提供 C++ 指南,帮助开发者避免常见错误,如内存泄漏、悬垂引用、未定义行为和所有权混淆。包含 C++ 最佳实践和参考文档。

2· 1.2k·9 当前·9 累计
by @ivangdavila (Iván)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/26
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
此技能仅包含文档,要求和文件与其目的相符,不请求凭据、安装或危险行为。
评估建议
此技能是一套 C++ 参考笔记,与其目的相符,不请求秘密或安装代码。唯一小问题是它声明 g++ 为必需二进制文件,但仅包含文档,这是合理但不严格必要的。如果安装,请在编译或运行之前审查代理生成的任何代码样本,并避免因技能安装而向代理授予无关的凭据或高级权限。
详细分析 ▾
用途与能力
该技能是一套 C++ 指南/参考包,声明 g++ 为必需二进制文件。对于 C++ 技能(编译/测试)而言,要求 g++ 是合理的,但该技能仅为指令,仅包含文档 —— 它不实际包含编译/运行步骤。这是一个小的不匹配,但不令人担忧。
指令范围
SKILL.md 和包含的 Markdown 文件仅为关于 C++ 陷阱的参考材料(内存、UB、并发、STL、模板)。没有指令读取无关文件、访问环境变量或向外部端点传输数据。
安装机制
没有安装规格或代码文件 — 该技能仅为指令,因此在安装期间没有下载或执行任何内容。
凭证需求
该技能不请求环境变量、凭据或配置路径。没有请求不当的访问。
持久化与权限
该技能未设置为 always: true,使用默认的自主调用设置。它不请求持久的系统级别更改或其他技能的配置。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

🖥️ OSLinux · macOS · Windows

版本

latestv1.0.12026/2/9

初始发布

无害

安装命令

点击复制
官方npx clawhub@latest install cpp
镜像加速npx clawhub@latest install cpp --registry https://cn.longxiaskill.com

技能文档

快速参考

主题文件
RAII、智能指针、new/deletememory.md
裸指针、引用、nullptrpointers.md
三/五/零法则、继承、虚函数classes.md
容器、迭代器、算法stl.md
模板、SFINAE、conceptstemplates.md
线程、互斥锁、原子操作concurrency.md
C++11/14/17/20、移动语义modern.md
未定义行为陷阱ub.md

关键规则

  • new 没有 delete 会导致泄漏 — 使用 std::unique_ptrstd::make_unique
  • 返回局部变量的引用 — 未定义行为,对象在返回时被销毁
  • C 字符串使用 == 比较的是指针 — 使用 std::stringstrcmp()
  • 有符号整数溢出是未定义行为 — 不像无符号那样回绕
  • 基类需要虚析构函数 — 否则派生类析构函数会被跳过
  • std::move 不会实际移动 — 它只是转换为右值引用,启用移动语义
  • 被移动后的对象处于有效但未指定状态 — 重新赋值前不要使用
  • 非原子操作上的数据竞争是未定义行为 — 使用 std::mutexstd::atomic
  • vector 不是真正的容器 — 返回代理对象,使用 deque
  • map[key] 会在键不存在时插入默认值 — 使用 find()contains() 检查
  • 花括号初始化 {} 防止窄化转换 — int x{3.5} 报错,int x(3.5) 截断
  • push_back 可能使迭代器失效 — vector 可能重新分配内存
  • string_view 不拥有数据 — 底层字符串必须比视图存活更久
数据来源ClawHub ↗ · 中文优化:龙虾技能库