C++编程语言:span库提案更新
"C++编程语言中的库工作小组讨论了关于`span`类型的改进提案,该提案最初称为`array_view`。在Kona会议后,根据LEWG(图书馆增强工作组)的反馈,将类型名更改为`span`。提案进行了多项修改,包括删除多维方面的内容,使`span`始终为单维且连续。提案还添加了与P0009中提出的多维视图类型的潜在交互细节,并引入了对P0257的依赖,以便用`byte`类型支持`span`访问对象表示。此外,删除了从`span<byte>`到`span<T>`的转换函数,因为这与类型别名规则不兼容,并根据审阅者反馈简化了`span`接口。同时,增加了拟议的标准包含的词汇表内容。" 在C++编程语言中,`span`是一种用于安全访问和操作连续内存序列的类型,它提供了类似于数组的接口,但不拥有内存,从而降低了内存管理的复杂性。P0122R4提案详细介绍了`span`的改进和设计决策。从R0到R4的变更表明了提案的逐步完善和适应标准的需求。 1. **名称变更**:原本的`array_view`被改为`span`,这反映了该类型更加注重表示一个内存范围,而不是一个具体的数组容器。 2. **维度调整**:为了简化设计,`span`不再支持多维,而是专注于提供单维、连续的内存视图。 3. **与P0009交互**:提案考虑了与P0009中定义的多维视图类型的兼容性,允许在不同视图类型之间进行有效的交互。 4. **类型别名规则**:由于C++的类型别名规则,从`span<byte>`到`span<T>`的直接转换被移除,以避免违反这些规则可能导致的问题。 5. **依赖P0257**:`span`需要`P0257`中定义的`byte`类型来支持访问对象的字节表示,这对于处理原始内存块非常有用。 6. **接口简化**:根据审阅者的建议,`span`的接口被简化,提高了易用性和一致性。 7. **范围检查和安全性**:`span`的设计强调了范围检查和边界安全,以减少潜在的缓冲区溢出错误。 8. **元素类型和转换**:`span`可以处理不同类型的元素,并在适当的情况下进行类型转换,但必须遵守C++的规则。 9. **子`span`创建**:`span`允许创建子`span`,以对内存序列的特定部分进行操作。 10. **多维`span`**:虽然`span`自身是单维的,但提案讨论了如何与其他多维视图配合使用以实现多维操作。 这些变更和设计决策都是为了提高C++库的效率、安全性和易用性,使得`span`成为处理内存序列的强大工具,特别是在低级内存操作和性能敏感的代码中。标准的更新将包括这些提议的词汇表更改,以确保`span`类型能够在C++生态系统中得到广泛而有效利用。
![](https://csdnimg.cn/release/download_crawler_static/10011831/bg5.jpg)
剩余21页未读,继续阅读
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/b2bd1c2ac81e4cf894ed1157d2b36807_qq_40465689.jpg!1)
- 粉丝: 0
- 资源: 6
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)