GSL 4.2.0 Release Notes
New Features
- Added
gsl::swap
for safely swappinggsl::not_null
pointers (#1160) - Introduced
element_type
member type togsl::not_null
for better type trait consistency (#1196) - Added support for
strict_not_null
withunique_ptr
(#1179) - Added comprehensive test suite for
gsl::span
including empty span, conversion, and comparison tests (#1189)
Performance Improvements
- Significantly improved
span_iterator
performance with Clang compiler, reducing overhead by up to 20x (#1166)
Bug Fixes
- Fixed GCC-specific bug with list initialization of const references (#1175)
- Fixed SFINAE implementation in
gsl::owner
(#1174) - Fixed issues with
std::enable_if
usage throughout the codebase (#1177) - Modified include directives to use explicit "gsl/" prefix to prevent header conflicts (#1184)
- Changed include directives to use relative paths to comply with CppCoreGuideline SF.12 (#1194)
Deprecated Features
- Removed deprecated
string_span
feature (#1185) - Marked the following features as deprecated as they are now in the C++ standard:
gsl::unique_ptr
gsl::shared_ptr
gsl::byte
(since C++17)gsl::joining_thread
Infrastructure Updates
- Updated CI pipeline for Ubuntu 24.04
- Updated compiler support:
- Clang 16, 17, 18
- GCC 12, 13, 14
- Upgraded to GoogleTest v1.14.0
- Added new issue templates
- Updated documentation and badges
Thanks to Contributors
Special thanks to the following contributors who helped make GSL 4.2.0 possible:
- @ajtruckle
- @apenn-msft
- @asartori86
- @beinhaerter
- @daltairwalter
- @DanielJump
- @HenryHu
- @lord-pando
- @mhthies
- @paparodeo
- @tiagomacarios
Your contributions have helped improve GSL's reliability, performance, and usability.