促进 C++库

……其中一个世界。 赫伯·萨特安德烈亚历山德雷斯库,C类++编码标准

这是旧版本Boost的文档。单击此处查看此页面的最新版本。
上一个向上主页下一步

选中_删除

概述
简介
选中_删除
选中数组删除
选中的删除器
选中数组删除器
致谢

作者

  • 贝曼·道斯
  • 戴夫·亚伯拉罕斯
  • 弗拉基米尔·普鲁斯
  • 雷纳尔·戴克
  • 约翰·马多克

收割台<促进/选中_删除.马力>定义了两个函数模板,选中_删除选中数组删除,和两个类模板,选中的删除器检查阵列删除器.

在5.3.5/5中,C++标准允许指向不完整类类型的指针用delete表达式删除。当类具有非平凡的析构函数时,或特定于类的运算符delete,则行为未定义。一些编译器当删除不完整的类型时发出警告,但不幸的是,没有所有这些都会发生,程序员有时会忽略或禁用警告。

一个特别麻烦的情况是,当智能指针的析构函数作为促进::作用域_ptr<T型>::~作用域_ptr,实例化为不完整类型。这通常会导致无声、难以追踪的故障。

可以使用提供的函数和类模板来防止这些问题,因为它们需要完整的类型,否则会导致编译错误。

命名空间 促进
{
    模板< T型> 空隙 选中_删除(T型 * 第页);
    模板< T型> 空隙 选中数组删除(T型 * 第页);
    模板< T型> 结构 选中的删除器;
    模板< T型> 结构 选中数组删除器;
}
  • 要求: T型必须是完整类型。表达式删除 第页必须是正规的。
  • 影响: 删除 第页;
  • 要求: T型必须是完整类型。表达式删除 [] 第页必须是正规的。
  • 影响: 删除 [] 第页;
模板< T型> 结构 选中的删除器
{
    类型定义 空隙 结果类型;
    类型定义 T型 * 参数类型;
    空隙 操作人员()(T型 * 第页) 常数;
};
  • 要求: T型必须是完整类型。表达式删除 第页必须是正规的。
  • 影响: 删除 第页;
模板< T型> 结构 选中数组删除器
{
    类型定义 空隙 结果类型;
    类型定义 T型 * 参数类型;
    空隙 操作人员()(T型 * 第页) 常数;
};
  • 要求: T型必须是完整类型。表达式删除 [] 第页必须是正规的。
  • 影响: 删除 [] 第页;

函数模板选中_删除选中数组删除最初是的一部分<促进/效用.马力>,文件确认了Beman Dawes、Dave Abrahams、Vladimir Prus、,Rainer Deyke、John Maddock和其他作者。


上一个向上主页下一步