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_stringstream::basic_stringstream	    -	      std::ba-
       sic_stringstream::basic_stringstream

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

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

		    std::ios_base::in |	std::ios_base::out );
	  explicit basic_stringstream

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

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

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

			      std::ios_base::openmode mode, const
	  Allocator& a );
	  template< class SAlloc >
									(1)
	  basic_stringstream( const std::basic_string<CharT, Traits,
	  SAlloc>&							  str,
       (7)  (since C++20)
			      const Allocator& a )

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

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

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

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

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

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

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

	  Constructs new string	stream.

	  Given

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

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

	   Over	      std::basic_iostream base				sb
	   load
	  (1)					    buf_type(mode)
	  (2)					    buf_type(std::ios_base::in
       |
						    std::ios_base::out)
	  (3)					    buf_type(str, mode)
	  (4)	  base_type(std::addressof(sb))^[1]   buf_type(std::move(str),
       mode)
	  (5)					    buf_type(mode, a)
	  (6)					    buf_type(str, mode,	a)
	  (7)							 buf_type(str,
       std::ios_base::in |
						    std::ios_base::out,	a)
	  (8)					    buf_type(str, mode)
	  (9)					    {t,	mode, Allocator()}
	  (10)	 std::addressof(sb)		    {t,	mode, a}
	  (11)					    {t,	std::ios_base::in |
						    std::ios_base::out,	a}
	  (12)	 move constructed  from	 other's       move  constructed  from
       other.sb
		 std::basic_iostream 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_stringstream 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_stringstream::basic_stringstream&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help