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

NAME
     std::basic_istringstream::basic_istringstream	     -		std::ba-
     sic_istringstream::basic_istringstream

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

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

		  std::ios_base::in );
	explicit basic_istringstream

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

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

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

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

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

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

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

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

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

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

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

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

	Constructs new string stream.

	Given

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

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

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

	 1.  a	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 ini-
     tial 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  following
     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 open-
     ing
		ate		  seek to the end of  stream  immediately  after
     open
		noreplace (C++23) open in exclusive mode
	other - another string stream to use as source

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

		Feature-test macro	    Value    Std		Feature
	__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 behavior
	P0935R0 C++11	   the default constructor was explicit made implicit

See also
	str	       gets or sets the contents of underlying string device ob-
     ject
		      (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)

home | help