宣布GSL(指南支持库)v4.2.0版本

宣布GSL(指南支持库)v4.2.0版本

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

GSL v4.2.0发布,性能提升,特别是gsl::span迭代器在Clang编译器下速度显著提高。新增gsl::swap和改进的智能指针支持,保持与现代C++标准一致,弃用部分旧特性。更新编译器支持,修复多个重要bug,鼓励使用标准库替代品。

🎯

关键要点

  • GSL v4.2.0发布,带来显著的性能提升和新特性。

  • gsl::span迭代器在Clang编译器下性能显著提高,达到与std::span相当的速度。

  • 新增gsl::swap,专为安全交换gsl::not_null指针设计。

  • 增强类型特性,添加element_type以提高类型特性一致性。

  • 改进智能指针支持,增加strict_not_null与unique_ptr的兼容性。

  • 弃用与C++标准库相同的特性,建议使用标准库替代品。

  • 更新编译器支持,包含Clang 16至18和GCC 12至14。

  • 修复多个重要bug,确保与C++核心指南的一致性。

  • 鼓励用户使用gsl::span作为std::span的安全替代品。

  • 欢迎社区贡献,感谢贡献者的支持。

延伸问答

GSL v4.2.0版本有哪些主要的新特性?

GSL v4.2.0版本新增了gsl::swap、增强的类型特性和改进的智能指针支持等新特性。

gsl::span迭代器在Clang编译器下的性能如何?

在Clang编译器下,gsl::span迭代器的性能显著提高,达到了与std::span相当的速度。

GSL v4.2.0版本弃用了哪些特性?

本版本弃用了gsl::unique_ptr、gsl::shared_ptr和gsl::byte等特性,建议使用C++标准库的替代品。

如何安装GSL v4.2.0?

可以通过vcpkg安装,命令为:vcpkg install ms-gsl,或从GitHub下载microsoft/GSL。

GSL v4.2.0版本修复了哪些重要的bug?

修复了与GCC相关的常量引用列表初始化问题、gsl::owner中的SFINAE实现问题等多个重要bug。

GSL v4.2.0版本对编译器的支持有哪些更新?

更新了对Clang 16至18和GCC 12至14的支持,并升级了CI管道至Ubuntu 24.04。

➡️

继续阅读