[PATCHv3] libstdc++: provide debug impl of P2697 ctor [PR119742]

Nathan Myers ncm@cantrip.org
Fri Jul 25 15:40:35 GMT 2025


Changed in v3:
 * Rely on std/bitset's string_view ctor for bounds checking.

This adds the new bitset constructor from string_view
defined in P2697 to the debug version of the type.

libstdc++-v3/Changelog:
	PR libstdc++/119742
	* include/debug/bitset: Add new ctor.
---
 libstdc++-v3/include/debug/bitset | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/libstdc++-v3/include/debug/bitset b/libstdc++-v3/include/debug/bitset
index ad9b7b5c4b0..e4d3e6619c9 100644
--- a/libstdc++-v3/include/debug/bitset
+++ b/libstdc++-v3/include/debug/bitset
@@ -164,6 +164,17 @@ namespace __debug
 	       _CharT __zero, _CharT __one = _CharT('1'))
 	: _Base(__str, __pos, __n, __zero, __one) { }
 
+#ifdef __cpp_lib_bitset // ... from string_view
+      template<class _CharT, class _Traits>
+	constexpr explicit
+	bitset(std::basic_string_view<_CharT, _Traits> __s,
+	  std::basic_string_view<_CharT, _Traits>::size_type __position = 0,
+	  std::basic_string_view<_CharT, _Traits>::size_type __n =
+	    std::basic_string_view<_CharT, _Traits>::npos,
+	  _CharT __zero = _CharT('0'), _CharT __one = _CharT('1'))
+	: _Base(__s, __position, __n, __zero, __one) { }
+#endif
+
       _GLIBCXX23_CONSTEXPR
       bitset(const _Base& __x) : _Base(__x) { }
 
-- 
2.50.0



More information about the Libstdc++ mailing list