ISO/IEC TR 19768:2007
Information technology — Programming languages — Technical Report on C++ Library Extensions
发布时间:2007-11-15 实施时间:


C++是一种通用的编程语言,广泛用于开发各种类型的应用程序。C++标准库是C++语言的核心组成部分之一,提供了许多常用的数据结构和算法。然而,有时候需要更高级别的数据结构和算法,这就需要扩展C++标准库。

ISO/IEC TR 19768:2007提供了一些C++标准库的扩展,这些扩展可以用于实现更高级别的应用程序。这些扩展包括新的容器类型、算法、迭代器和其他实用程序。以下是一些扩展的示例:

1. 多维数组容器
C++标准库提供了vector和array容器,但是它们只能存储一维数组。ISO/IEC TR 19768:2007提供了一些多维数组容器,例如matrix和tensor,可以存储二维或更高维数组。

2. 并行算法
C++标准库提供了一些算法,例如sort和find,但是它们是串行的。ISO/IEC TR 19768:2007提供了一些并行算法,例如parallel_sort和parallel_find,可以在多个处理器上并行执行。

3. 延迟计算容器
C++标准库提供了一些容器,例如vector和list,它们在插入或删除元素时需要重新分配内存。ISO/IEC TR 19768:2007提供了一些延迟计算容器,例如lazy_vector和lazy_list,它们可以在不重新分配内存的情况下插入或删除元素。

4. 可逆迭代器
C++标准库提供了一些迭代器,例如forward_iterator和bidirectional_iterator,它们只能向前或向后遍历容器。ISO/IEC TR 19768:2007提供了一些可逆迭代器,例如random_access_iterator和reverse_iterator,它们可以向前或向后遍历容器,并且可以随机访问元素。

5. 序列化库
C++标准库没有提供序列化功能,即将对象转换为字节流以便存储或传输。ISO/IEC TR 19768:2007提供了一些序列化库,例如boost.serialization和Google Protocol Buffers,可以将对象序列化为字节流,并且可以将字节流反序列化为对象。

ISO/IEC TR 19768:2007还提供了一些其他的扩展,例如日期时间库、正则表达式库和网络库。这些扩展可以帮助开发人员更轻松地实现各种类型的应用程序。

相关标准
- ISO/IEC 14882:2017 Programming languages -- C++
- ISO/IEC 19568:2017 Technical Specification -- C++ Extensions for Parallelism
- ISO/IEC 19769:2015 Technical Specification -- C++ Extensions for Library Fundamentals
- ISO/IEC 19841:2015 Technical Specification -- C++ Extensions for Transactional Memory
- ISO/IEC 19841:2015 Technical Specification -- C++ Extensions for Concepts