]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Use basic_string_view for std::bitset deduced types
authorJonathan Wakely <jwakely@redhat.com>
Sat, 12 Jul 2025 12:12:09 +0000 (13:12 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 16 Jul 2025 12:10:30 +0000 (13:10 +0100)
This change was part of by P2697R1 (Interfacing bitset with string_view)
and should be slightly cheaper to instantiate.

We should consider using basic_string_view for C++17, C++20, and C++23
as well. This patch just conservatively changes it for C++26 to match
the working draft. It's conceivable that a program-defined
specialization of basic_string<_CharT> or basic_string_view<_CharT> will
observe a difference and be affected by this change.

libstdc++-v3/ChangeLog:

* include/std/bitset (__bitset::__string) [__cpp_lib_bitset]:
Change alias to refer to basic_string_view instead.

Reviewed-by: Tomasz KamiƄski <tkaminsk@redhat.com>
libstdc++-v3/include/std/bitset

index 1c1e1670c33f16b8db61c5a219d1519f9681b1ce..93a03f6b5d7228c37d1fe989152f5715ca68871f 100644 (file)
@@ -720,7 +720,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
   namespace __bitset
   {
-#if _GLIBCXX_HOSTED
+#ifdef __cpp_lib_bitset // ...construct from string_view
+    template<typename _CharT>
+      using __string = std::basic_string_view<_CharT>;
+#elif _GLIBCXX_HOSTED
     template<typename _CharT>
       using __string = std::basic_string<_CharT>;
 #else