CppCoreGuidelines ES.60 避免在资源管理函数外调用 new 和 delete
28 April 2023
“Avoid new
and delete
outside resource management functions”
理由
在应用代码中直接调用资源管理函数繁琐且容易出错。
注意
此规则也叫“No naked new”(没有裸露的 new)。
坏例子
void f(int n) { auto p = new X[n]; // n default constructed Xs // ... delete[] p; }
在省略出的代码可能导致后面的 delete
再也执行不到。
强化
- 标记裸露的
new
和delete