标准摘要
[中文适用范围]: 本技术报告描述了 C++ 标准库的扩展,该库在 C++ 编程语言国际标准 [14] 中进行了描述。 2 本技术报告是非规范性的。本技术报告中的某些库组件可能会在未来版本的 C++ 中被考虑标准化,但它们目前不是任何 C++ 标准的一部分。本技术报告中的某些组件可能永远不会被标准化,而其他组件可能会以大幅改变的形式被标准化。 3 本技术报告的目标是为扩展的 C++ 标准库建立更广泛的现有实践。它为希望提供扩展的供应商提供有关扩展的建议。1.1 与 C++ 标准库简介 [tr.description] 的关系 1 除非另有说明,否则整个 ISO C++ 标准库简介 [lib.library] 都通过引用包含在本技术报告中。1.2 扩展类别 [tr.intro.ext] 1 本技术报告描述了四类库扩展: 1. 新需求表,例如 7.2 中的正则表达式特征需求。这些并不直接表示为软件;它们指定了用户编写的组件与本技术报告中描述的组件互操作的情况。 2. 在全新标头中声明的新库组件(类型和函数),例如标头中的类模板(6.3.4.1)。 3. 作为现有标准标头的补充声明的新库组件,例如添加到标头和 5.2.1 和 5.2.2 中的数学特殊函数 4. 标准库组件的补充,例如 6.1.4 中对 std::pair 类的扩展。 2 新标头通过概要子句的标题与现有标头的扩展区分开来。在第一种情况下,标题的形式为“标头概要”,概要包括标头中包含的所有命名空间范围声明。在第二种情况下,标题的形式为“头文件概要的补充”,并且概要仅包含扩展,即 C++ 标准 [14] 中不存在的命名空间范围声明。1.3 命名空间和头文件 [tr.intro.namespaces] 1 由于本技术报告中描述的扩展不是 C++ 标准库的一部分,因此不应直接在命名空间 std 内声明它们。除非另有说明,本技术报告中描述的所有组件均在命名空间 std::tr1 中声明。[注意:某些组件在命名空间 std::tr1 的子命名空间中声明。— 结束注释] 2 除非另有说明,对本技术报告中描述的其他实体的引用假定用 std::tr1:: 限定,对国际标准中描述的实体的引用假定用 std:: 限定。 3 即使扩展被指定为标准头文件的附加内容(1.2 中的第三类),供应商也不应简单地以用户默认可见的方式向标准头文件添加声明。[注意:这不符合标准,因为即使在命名空间内,新名称也可能与用户宏冲突。— 结束注释] 应要求用户采取明确措施才能访问库扩展。4 建议使用未默认定义的宏来保护标准头文件中的附加声明,或者将所有扩展头文件(包括新头文件和具有非标准声明的标准头文件的并行版本)放置在不属于默认搜索路径的单独目录中。 [外文原描述]: ISO/IEC TR 19768:2007 specifies a series of extensions to the standard library for the programming language C++, as specified by ISO/IEC 14882, in order to build more widespread existing practice for an expanded C++ standard library. Some of the components in ISO/IEC TR 19768:2007 could be considered for standardization in a future version of C++. The specific classes of extensions specified in ISO/IEC TR 19768:2007 are as follows: general utilities such as reference-counted pointers; functional programming; facilities for compile-time type queries; enhanced support for numerical computation; hash tables and other additional container classes; regular expression processing; improved capability with the programming language C, as specified by ISO/IEC 9899.
英文名称Information technology -- Programming languages -- Technical Report on C++ Library Extensions