[libcxx-commits] [PATCH] D154454: [libc++] Implement istringstream members of P0408R7 (Efficient Access to basic_stringbuf's Buffer)
    Mark de Wever via Phabricator via libcxx-commits 
    libcxx-commits at lists.llvm.org
       
    Tue Jul  4 11:16:17 PDT 2023
    
    
  
Mordante added a comment.
Thanks! This look quite good, a few small issues.
================
Comment at: libcxx/include/sstream:813
+    _LIBCPP_HIDE_FROM_ABI basic_istringstream(ios_base::openmode __wch, const _Allocator& __a)
+        : basic_istream<_CharT, _Traits>(&__sb_), __sb_(__wch | ios_base::in, __a) {}
+
----------------
I prefer the wording of the standard, I know the existing code doesn't do that but let's do it for the new code.
================
Comment at: libcxx/include/sstream:863
+    template <class _SAlloc>
+      requires __is_allocator<_SAlloc>::value
+    _LIBCPP_HIDE_FROM_ABI basic_string<char_type, traits_type, _SAlloc> str(const _SAlloc& __sa) const {
----------------
This function is not constrained in the Standard. Why is it needed?
================
Comment at: libcxx/test/std/input.output/string.streams/istringstream/istringstream.cons/mode.alloc.pass.cpp:27
+  const test_allocator<CharT> a(2);
+  const std::basic_istringstream<CharT, std::char_traits<CharT>, test_allocator<CharT>> ss(std::ios_base::in, a);
+  assert(ss.rdbuf()->get_allocator() == a);
----------------
I would avoid `std::ios_base::in` in these tests if possible. This should be automatically be set.
================
Comment at: libcxx/test/std/input.output/string.streams/istringstream/istringstream.members/str.move.pass.cpp:32
+    assert(s == STR("testing"));
+    assert(ss.view().empty());
+  }
----------------
Is the moved from state specified?
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D154454/new/
https://reviews.llvm.org/D154454
    
    
More information about the libcxx-commits
mailing list