home | help
std::basic_spanbuf(3)	       C++ Standard Libary	   std::basic_spanbuf(3)

NAME
     std::basic_spanbuf - std::basic_spanbuf

Synopsis
	Defined in header <spanstream>
	template<

	    class CharT,
	    class Traits = std::char_traits<CharT>	  (since C++23)
	> class basic_spanbuf

	    : public std::basic_streambuf<CharT, Traits>

	std::basic_spanbuf  is a std::basic_streambuf whose associated character
     sequence is
	a memory-resident sequence of arbitrary characters, which  can	be  ini-
     tialized from or
	made available as an instance of std::span<CharT>.

	std::basic_spanbuf performs I/O on a fixed buffer, and therefore it does
     not attempt
	to obtain a new buffer when the underlying buffer is exhausted.

	Several typedefs for common character types are provided:

	Defined in header <spanstream>
	Type	      Definition
	std::spanbuf  std::basic_spanbuf<char>
	std::wspanbuf std::basic_spanbuf<wchar_t>

Member types
	Member type Definition
	char_type   CharT
	traits_type  Traits;  the  program is ill-formed if Traits::char_type is
     not
		    CharT.
	int_type    Traits::int_type
	pos_type    Traits::pos_type
	off_type    Traits::off_type

	Data members

	Member name   Definition
	mod (private) A std::ios_base::openmode recording the open mode.
		      (exposition-only member object*)
	buf (private) A std::span<CharT> referencing the underlying buffer.
		      (exposition-only member object*)

Member functions
Public member functions
	constructor	  constructs a basic_spanbuf object
	(C++23) 	  (public member function)
	destructor	  destroys the basic_spanbuf object
	[virtual] (C++23) (virtual public member function)
	operator=	  assigns a basic_spanbuf object
	(C++23) 	  (public member function)
	swap		  swaps two basic_spanbuf objects
	(C++23) 	  (public member function)
	span		  obtains or initializes an underlying buffer  according
     to mode
	(C++23) 	  (public member function)

Protected member functions
	setbuf		   attempts to replace the controlled character sequence
     with an
	[virtual] (C++23) array
			  (virtual protected member function)
	seekoff 	  repositions the next pointer in  the	input  sequence,
     output
	[virtual] (C++23) sequence, or both, using relative addressing
			  (virtual protected member function)
	seekpos 	   repositions	the  next pointer in the input sequence,
     output
	[virtual] (C++23) sequence, or both using absolute addressing
			  (virtual protected member function)

Non-member functions
	std::swap(std::basic_spanbuf) specializes the std::swap algorithm
	(C++23) 		      (function template)

     Inherited from std::basic_streambuf

Member types
	Member type Definition
	char_type   CharT
	traits_type Traits; the program is ill-formed  if  Traits::char_type  is
     not
		    CharT.
	int_type    Traits::int_type
	pos_type    Traits::pos_type
	off_type    Traits::off_type

Member functions
	destructor	   destructs the basic_streambuf object
	[virtual]	   (virtual public member function of
			   std::basic_streambuf<CharT,Traits>)

Locales
			   invokes imbue()
	pubimbue	     (public   member	function  of  std::basic_stream-
     buf<CharT,Traits>)

			   obtains a copy of the associated locale
	getloc		    (public  member   function	 of   std::basic_stream-
     buf<CharT,Traits>)

Positioning
			   invokes setbuf()
	pubsetbuf	     (public   member	function  of  std::basic_stream-
     buf<CharT,Traits>)

			   invokes seekoff()
	pubseekoff	    (public  member   function	 of   std::basic_stream-
     buf<CharT,Traits>)

			   invokes seekpos()
	pubseekpos	     (public   member	function  of  std::basic_stream-
     buf<CharT,Traits>)

			   invokes sync()
	pubsync 	    (public  member   function	 of   std::basic_stream-
     buf<CharT,Traits>)

Get area
			   obtains  the  number of characters immediately avail-
     able in the get
	in_avail	   area
			   (public   member   function	 of   std::basic_stream-
     buf<CharT,Traits>)

			   advances the input sequence, then reads one character
     without
	snextc		   advancing again
			   (public   member   function	 of   std::basic_stream-
     buf<CharT,Traits>)

	sbumpc		   reads one character from the input sequence	and  ad-
     vances the
	stossc		   sequence
	(removed   in  C++17)  (public	member	function  of  std::basic_stream-
     buf<CharT,Traits>)

			   reads one character from the input  sequence  without
     advancing the
	sgetc		   sequence
			   (public   member   function	 of   std::basic_stream-
     buf<CharT,Traits>)

			   invokes xsgetn()
	sgetn		    (public  member   function	 of   std::basic_stream-
     buf<CharT,Traits>)

Put area
			   writes one character to the put area and advances the
     next
	sputc		   pointer
			   (public   member   function	 of   std::basic_stream-
     buf<CharT,Traits>)

			   invokes xsputn()
	sputn		    (public  member   function	 of   std::basic_stream-
     buf<CharT,Traits>)

Putback
			   puts one character back in the input sequence
	sputbackc	     (public   member	function  of  std::basic_stream-
     buf<CharT,Traits>)

			   moves the next pointer in the input sequence back  by
     one
	sungetc 	     (public   member	function  of  std::basic_stream-
     buf<CharT,Traits>)

Protected member functions
	constructor   constructs a basic_streambuf object
		      (protected member function)
	operator=     replaces a basic_streambuf object
	(C++11)       (protected member function)
	swap	      swaps two basic_streambuf objects
	(C++11)       (protected member function)

Locales
	imbue	      changes the associated locale
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)

Positioning
	setbuf	      replaces the buffer with user-defined array, if permitted
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)
		      repositions the next pointer in the input sequence, output
     sequence,
	seekoff       or both, using relative addressing
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)
		      repositions the next pointer in the input sequence, output
     sequence,
	seekpos       or both using absolute addressing
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)
	sync	      synchronizes the buffers with the associated character se-
     quence
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)

Get area
		      obtains the number of characters available  for  input  in
     the associated
	showmanyc     input sequence, if known
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)
	underflow     reads characters from the associated input sequence to the
     get area
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)
		      reads characters from the associated input sequence to the
     get area
	uflow	      and advances the next pointer
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)
	xsgetn	      reads multiple characters from the input sequence
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)
	eback	       returns a pointer to the beginning, current character and
     the end of
	gptr	      the get area
	egptr	      (protected member function)
	gbump	      advances the next pointer in the input sequence
		      (protected member function)
		      repositions the beginning, next, and end pointers  of  the
     input
	setg	      sequence
		      (protected member function)

Put area
	xsputn	      writes multiple characters to the output sequence
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)
	overflow       writes  characters to the associated output sequence from
     the put area
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)
	pbase	      returns a pointer to the beginning, current character  and
     the end of
	pptr	      the put area
	epptr	      (protected member function)
	pbump	      advances the next pointer of the output sequence
		      (protected member function)
		      repositions  the	beginning, next, and end pointers of the
     output
	setp	      sequence
		      (protected member function)

Putback
		      puts a character back into the  input  sequence,	possibly
     modifying the
	pbackfail     input sequence
	[virtual]     (virtual protected member function of
		      std::basic_streambuf<CharT,Traits>)

Notes
	std::basic_spanbuf does not own the underlying buffer.

	It  is the responsibility of programmers to ensure the underlying buffer
     is in its
	lifetime when used by a std::basic_spanbuf object.  Additional	synchro-
     nization may be
	needed	if  more  than	one  thread  operates the same underlying buffer
     through different
	std::basic_spanbuf objects.

	 Feature-test macro   Value    Std		Feature
	__cpp_lib_spanstream 202106L (C++23) std::spanbuf, std::spanstream

See also
	basic_stringbuf       implements raw string device
			      (class template)
	strstreambuf	      implements raw character array device
	(deprecated in C++98) (class)
	(removed in C++26)

http://cppreference.com 	   2024.06.10		   std::basic_spanbuf(3)

home | help