Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

NAME
       std::strstreambuf::setbuf - std::strstreambuf::setbuf

Synopsis
	  protected:						       (depre-
       cated in	C++98)
	  virtual streambuf* setbuf( char* s, std::streamsize n	 );   (removed
       in C++26)

	  If s is a null pointer and n is zero,	this function has no effect.

	  Otherwise,  the  effect  is implementation-defined: some implementa-
       tions do	nothing,
	  while	some implementations deallocate	the dynamic member array  used
       as the buffer
	  and  begin  using the	user-supplied character	array of size n, whose
       first element is
	  pointed to by	s.

	  This function	is protected virtual, it may only  be  called  through
       pubsetbuf() or
	  from	 member	  functions  of	 a  user-defined  class	 derived  from
       std::strstreambuf.

Parameters
	  s - pointer to the first byte	in the user-provided buffer
	  n - the number of bytes in the user-provided buffer

Return value
	  this

Example
	  Implementation test to check if setbuf() is supported	on  a  dynamic
       strstream (output
	  obtained with	Sun Studio):

       // Run this code

	#include <iostream>
	#include <strstream>

	int main()
	{
	    char a[100]	= {};
	    std::strstream str;
	    str.rdbuf()->pubsetbuf(a, sizeof a);
	    str	<< "Test string" << std::ends;
	    std::cout << "user-provided	buffer holds \"" << a << "\"\n";
	}

Possible output:
	user-provided buffer holds "Test string"

	  Defect reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	    DR	     Applied	 to		   Behavior    as    published
       Correct behavior
			    the	effect of setbuf() was "performs an
			    operation that is
	  LWG 66 C++98	    defined separately for each	 class	derived	   the
       effect is
			    from strstreambuf",				imple-
       mentation-defined
			    but	there are no classes derived from
			    strstreambuf

See also
	  pubsetbuf invokes setbuf()
		    (public	member	  function    of    std::basic_stream-
       buf<CharT,Traits>)
	  setbuf    replaces the buffer	with user-defined array, if permitted
	  [virtual] (virtual protected member function	of  std::basic_stream-
       buf<CharT,Traits>)

	  setbuf    attempts to	replace	the controlled character sequence with
       an array
	  [virtual] (virtual protected member function of
		    std::basic_stringbuf<CharT,Traits,Allocator>)
	  setbuf     provides  user-supplied  buffer or	turns this filebuf un-
       buffered
	  [virtual] (virtual protected	member	function  of  std::basic_file-
       buf<CharT,Traits>)

http://cppreference.com		  2024.06.10	  std::strstreambuf::setbuf(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::strstreambuf::setbuf&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help