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

FreeBSD Manual Pages

  
 
  

home | help
std::basic_...stringstream(3) C++ Standard Libarystd::basic_...stringstream(3)

NAME
       std::basic_ostringstream::basic_ostringstream	  -	std::basic_os-
       tringstream::basic_ostringstream

Synopsis
	  explicit   basic_ostringstream(   std::ios_base::openmode   mode   =
       (until C++11)
					    std::ios_base::out );
	  explicit   basic_ostringstream(   std::ios_base::openmode   mode  );
       (since C++11)
	  basic_ostringstream()
       (2)  (since C++11)
	      :	basic_ostringstream(std::ios_base::out)	{}
	  explicit basic_ostringstream

	      (	 const	std::basic_string<CharT,  Traits,   Allocator>&	  str,
       (3)
		std::ios_base::openmode	mode =

		    std::ios_base::out );
	  explicit basic_ostringstream

	      (	   std::basic_string<CharT,    Traits,	  Allocator>&&	  str,
       (4)  (since C++20)
		std::ios_base::openmode	mode =

		    std::ios_base::out );
	  basic_ostringstream(	   std::ios_base::openmode     mode,	 const
       (5)  (since C++20)
	  Allocator& a );
	  template< class SAlloc >

	  basic_ostringstream( const std::basic_string<CharT, Traits,
	  SAlloc>&							  str,
       (6)  (since C++20)

			       std::ios_base::openmode mode, const
	  Allocator& a );
	  template< class SAlloc >

	  basic_ostringstream( const std::basic_string<CharT, Traits,	(1)
	  SAlloc>&							  str,
       (7)  (since C++20)
			       const Allocator&	a )

	      :	basic_ostringstream(str, std::ios_base::out, a)	{}
	  template< class SAlloc >

	  explicit basic_ostringstream
	      (	  const	  std::basic_string<CharT,   Traits,   SAlloc>&	  str,
       (8)  (since C++20)
		std::ios_base::openmode	mode =

		    std::ios_base::out );
	  template< class StringViewLike >

	  explicit basic_ostringstream
	      (		    const	       StringViewLike&		    t,
       (9)  (since C++26)
		std::ios_base::openmode	mode =

		    std::ios_base::out );
	  template< class StringViewLike >

	  basic_ostringstream(	       const	     StringViewLike&	    t,
       (10) (since C++26)

			       std::ios_base::openmode mode, const
	  Allocator& a );
	  template< class StringViewLike >
	  basic_ostringstream(	   const     StringViewLike&	 t,	 const
       (11) (since C++26)
	  Allocator& a );
	  basic_ostringstream(	     basic_ostringstream&&	 other	    );
       (12) (since C++11)

	  Constructs new string	stream.

	  Given

	    * base_type	as std::basic_ostream<CharT, Traits>, and
	    * buf_type as std::basic_stringbuf<CharT, Traits, Allocator>,

	  the std::basic_ostream base and the exposition-only data  member  sb
       are initialized
	  as follows.

	   Over		  std::basic_ostream base			   sb
	   load
	  (1)						     buf_type(mode   |
       std::ios_base::out)
	  (2)
       buf_type(std::ios_base::out)
	  (3)						   buf_type(str,  mode
       |
							   std::ios_base::out)
	  (4)
       buf_type(std::move(str),	mode |
							   std::ios_base::out)
	  (5)	   base_type(std::addressof(sb))^[1]	      buf_type(mode  |
       std::ios_base::out,
							   a)
	  (6)						   buf_type(str,  mode
       |
							   std::ios_base::out,
       a)
	  (7)							 buf_type(str,
       std::ios_base::out,
							   a)
	  (8)						   buf_type(str,  mode
       |
							   std::ios_base::out)
	  (9)						      {t,    mode    |
       std::ios_base::out,
		 std::addressof(sb)			   Allocator()}
	  (10)						      {t,    mode    |
       std::ios_base::out, a}
	  (11)								   {t,
       std::ios_base::out, a}
	  (12)	 move constructed from	other's		     move  constructed
       from other.sb
		 std::basic_ostream base

	   1.  The std::basic_iostream base was	intialized with	base_type(&sb)
       (for overloads
	      (1,3)) until C++11.
	  8)  This  overload  participates  in	overload  resolution  only  if
       std::is_same_v<SAlloc,
	  Allocator> is	false.
	  9-11)	These overloads	participate in overload	resolution only	if
	  std::is_convertible_v<const	     StringViewLike&,	      std::ba-
       sic_string_view<CharT, Traits>>
	  is true.

Parameters
	  str	- string to use	as initial contents of the string stream
	  t	 - an object (convertible to std::basic_string_view) to	use as
       initial contents
		  of the string	stream
	  a	- allocator used for allocating	the  contents  of  the	string
       stream
		  specifies stream open	mode. It is a BitmaskType, the follow-
       ing constants are
		  defined:

		  Constant	    Explanation
		  app		     seek  to  the  end	 of stream before each
       write
	  mode	- binary	    open in binary mode
		  in		    open for reading
		  out		    open for writing
		  trunc		    discard the	contents of  the  stream  when
       opening
		  ate		     seek to the end of	stream immediately af-
       ter open
		  noreplace (C++23) open in exclusive mode
	  other	- another string stream	to use as source

Notes
	  Construction of one-off basic_ostringstream objects in a tight loop,
       such as when
	  used for string conversion, may be significantly  more  costly  than
       calling str() to
	  reuse	the same object.

		  Feature-test macro	      Value    Std		  Fea-
       ture
	  __cpp_lib_sstream_from_string_view   202306L	 (C++26)   Interfacing
       std::stringstreams
							     with
       std::string_view, (9-11)

Example
       // Run this code

	#include <iostream>
	#include <sstream>

	int main()
	{
	    // default constructor (input/output stream)
	    std::stringstream buf1;
	    buf1 << 7;
	    int	n = 0;
	    buf1 >> n;
	    std::cout << "buf1 = " << buf1.str() << " n	= " << n << '\n';

	    // input stream
	    std::istringstream inbuf("-10");
	    inbuf >> n;
	    std::cout << "n = "	<< n <<	'\n';

	    // output stream in	append mode (C++11)
	    std::ostringstream buf2("test", std::ios_base::ate);
	    buf2 << '1';
	    std::cout << buf2.str() << '\n';
	}

Output:
	buf1 = 7 n = 7
	n = -10
	test1

	  Defect reports

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

	    DR	  Applied to	    Behavior as	published	  Correct  be-
       havior
	  P0935R0  C++11       the  default  constructor was explicit made im-
       plicit

See also
	  str		gets or	sets the contents of underlying	string	device
       object
			(public	member function)
			constructs a basic_stringbuf object
	  constructor	(public	member function	of
			std::basic_stringbuf<CharT,Traits,Allocator>)

http://cppreference.com		  2024.06.10	 std::basic_...stringstream(3)

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

home | help