首页龙虾技能列表 › C++ — 避免常见 C++ 错误

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

v1.0.1

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

2· 1,231·9 当前·9 累计
by @ivangdavila (Iván)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/26
安全扫描
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/10

初始发布

● 无害

安装命令 点击复制

官方npx clawhub@latest install cpp
镜像加速npx clawhub@latest install cpp --registry https://cn.clawhub-mirror.com

技能文档

快速参考

主题文件
RAII、智能指针、new/deletememory.md
裸指针、引用、nullptrpointers.md
Rule of 3/5/0、继承、虚函数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 ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务