table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 
| std::basic_ospanstream::span(3) | C++ Standard Libary | std::basic_ospanstream::span(3) | 
NAME¶
std::basic_ospanstream::span - std::basic_ospanstream::span
Synopsis¶
 std::span<CharT> span() const noexcept; (1) (since
    C++23)
  
   void span( std::span<CharT> s ) noexcept; (2) (since C++23)
  
   1) Gets a span referencing the written area if std::ios_base::out is set in
    the open
  
   mode of the wrapped std::basic_spanbuf, or a span referencing the underlying
    buffer
  
   otherwise.
  
   2) Makes the wrapped std::basic_spanbuf perform I/O on the buffer referenced
    by s.
Parameters¶
 s - std::span referencing the storage to be use as the new
    underlying buffer of
  
   stream
Return value¶
 1) A std::span referencing the underlying buffer or written area,
    depending on the
  
   open mode of the wrapped std::basic_spanbuf.
  
   2) (none)
Example¶
// Run this code
  
   #include <cassert>
  
   #include <iostream>
  
   #include <span>
  
   #include <spanstream>
  
   int main()
  
   {
  
   char out_buf[16];
  
   std::ospanstream ost{std::span<char>{out_buf}};
  
   ost << "C++" << ' ' << 23 << '\0'; // note
    explicit null-termination
  
   auto sp = ost.span();
  
   assert(
  
   sp[0] == 'C' && sp[1] == '+' && sp[2] == '+' &&
  
   sp[3] == ' ' && sp[4] == '2' && sp[5] == '3' &&
  
   sp[6] == '\0'
  
   );
  
   std::cout << "sp.data(): [" << sp.data() <<
    "]\n";
  
   std::cout << "out_buf: [" << out_buf <<
    "]\n";
  
   // spanstream uses out_buf as internal storage, no allocations
  
   assert(static_cast<char*>(out_buf) == sp.data());
  
   const char in_buf[] = "X Y 42";
  
   std::ispanstream ist{std::span<const char>{in_buf}};
  
   assert(static_cast<const char*>(in_buf) == ist.span().data());
  
   char c;
  
   ist >> c;
  
   assert(c == 'X');
  
   ist >> c;
  
   assert(c == 'Y');
  
   int i;
  
   ist >> i;
  
   assert(i == 42);
  
   ist >> i; // buffer is exhausted
  
   assert(!ist);
  
   }
Output:¶
 sp.data(): [C++ 23]
  
   out_buf: [C++ 23]
See also¶
 span obtains or initializes an underlying buffer according to
    mode
  
   (C++23) (public member function of
    std::basic_spanbuf<CharT,Traits>)
| 2024.06.10 | http://cppreference.com |