[libcxx-commits] [libcxx] 93bca34 - [libc++][C++03] Cherry-pick #147007 (#198991)

via libcxx-commits libcxx-commits at lists.llvm.org
Sun May 24 06:27:09 PDT 2026


Author: Nikolas Klauser
Date: 2026-05-24T15:27:02+02:00
New Revision: 93bca34673694ae917af72e665f7626d5aef2f0e

URL: https://github.com/llvm/llvm-project/commit/93bca34673694ae917af72e665f7626d5aef2f0e
DIFF: https://github.com/llvm/llvm-project/commit/93bca34673694ae917af72e665f7626d5aef2f0e.diff

LOG: [libc++][C++03] Cherry-pick #147007 (#198991)

Added: 
    

Modified: 
    libcxx/include/__cxx03/istream
    libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore.char_type.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/include/__cxx03/istream b/libcxx/include/__cxx03/istream
index 9e2eadc60b400..6f01046270c1b 100644
--- a/libcxx/include/__cxx03/istream
+++ b/libcxx/include/__cxx03/istream
@@ -70,6 +70,7 @@ public:
     basic_istream& getline(char_type* s, streamsize n, char_type delim);
 
     basic_istream& ignore(streamsize n = 1, int_type delim = traits_type::eof());
+    basic_istream& ignore(streamsize n, char_type delim);                         // Since C++26, implemented as a DR
     int_type peek();
     basic_istream& read (char_type* s, streamsize n);
     streamsize readsome(char_type* s, streamsize n);
@@ -165,6 +166,7 @@ template <class Stream, class T>
 #include <__cxx03/__type_traits/conjunction.h>
 #include <__cxx03/__type_traits/enable_if.h>
 #include <__cxx03/__type_traits/is_base_of.h>
+#include <__cxx03/__type_traits/is_same.h>
 #include <__cxx03/__utility/declval.h>
 #include <__cxx03/__utility/forward.h>
 #include <__cxx03/bitset>
@@ -284,6 +286,10 @@ public:
   basic_istream& getline(char_type* __s, streamsize __n, char_type __dlm);
 
   basic_istream& ignore(streamsize __n = 1, int_type __dlm = traits_type::eof());
+  template <class _Tp = char_type, __enable_if_t<is_same<_Tp, char>::value, int> = 0>
+  _LIBCPP_HIDE_FROM_ABI basic_istream& ignore(streamsize __n, char_type __delim) {
+    return ignore(__n, traits_type::to_int_type(__delim));
+  }
   int_type peek();
   basic_istream& read(char_type* __s, streamsize __n);
   streamsize readsome(char_type* __s, streamsize __n);

diff  --git a/libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore.char_type.pass.cpp b/libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore.char_type.pass.cpp
index 251af1d2327f3..0bf9851790953 100644
--- a/libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore.char_type.pass.cpp
+++ b/libcxx/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore.char_type.pass.cpp
@@ -6,8 +6,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-// XFAIL: FROZEN-CXX03-HEADERS-FIXME
-
 // <istream>
 
 // basic_istream& ignore(streamsize n, char_type delim);


        


More information about the libcxx-commits mailing list