促进 C++库

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

这是旧版本boost的文档。单击此处查看最新的Boost文档。

压缩空气(_P)

史蒂夫 克利里

贝曼 道斯

霍华德 Hinnant语

约翰 马多克

根据Boost软件许可证1.0版进行分发。(见随附文件文件LICENSE_1_0.txt或复制于http://www.boost.org/LICENSE_1_0.txt)


目录

概述
简介
致谢

的所有内容<促进/压缩空气.马力>在内部定义命名空间 促进.

这个班级压缩成对非常类似于标准::一对,但如果其中一个模板参数是空类,那么空基类优化用于压缩对的大小。

模板 < T1类,  T2段>
 压缩空气
{
公众的:
    类型定义 T1类                                                 第一种类型;
    类型定义 T2段                                                 秒_类型;
    类型定义 类别名 调用图(_T)<第一种类型>::参数类型       第一个参数类型;
    类型定义 类别名 调用图(_T)<秒_类型>::参数类型      第二参数类型;
    类型定义 类别名 调用图(_T)<第一种类型>::参考        第一个引用;
    类型定义 类别名 调用图(_T)<秒_类型>::参考       second_引用;
    类型定义 类别名 呼叫线路<第一种类型>::常量引用(_R)  第一个实例引用;
    类型定义 类别名 呼叫线路<秒_类型>::常量引用(_R) 秒_常量_引用;

             压缩空气() : 基础() {}
             压缩空气(第一张图类型 x个, 第二参数类型 );
    明确的 压缩空气(第一个参数类型 x个);
    明确的 压缩空气(第二参数类型 );

    压缩空气& 操作人员=(常数 压缩空气&);

    第一个引用       第一();
    第一个实例引用 第一() 常数;

    second_引用       第二();
    秒_常量_引用 第二() 常数;

    无效 互换(压缩空气& );
};

可以使用成员函数访问该对的两个成员第一()第二().请注意,并非所有成员函数都可以为所有模板参数实例化类型。特别地压缩空气可以为引用和数组类型实例化,但在这些情况下可以使用的构造函数的范围有限。If类型T1类T2段类型相同,则只有一个版本的单参数构造函数,此构造函数将对中的两个值初始化为传递的值。

请注意,如果其中一个成员是POD类型,则该成员不是零初始化的压缩空气违约构造函数:如果您希望它们具有默认值。

请注意压缩空气可以如果任一模板参数是并集类型,则不实例化,除非编译器支持促进::是联盟(_U),或者如果促进::is_union(_U)专门用于联合类型。

最后,对Visual C++6用户要注意的一点是:如果任一参数都是空类型,则分配给该成员将导致内存损坏,除非空类型定义了一个“do nothing”赋值运算符。这个是由于VC6生成隐式赋值运算符的方式中存在错误。

基于Steve Cleary、Beman Dawes、Howard Hinnant和John的贡献马多克。

维护人员约翰·马多克.

上次修订时间:2017年4月17日02:29:22 GMT