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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_istream::basic_istream - std::basic_istream::basic_istream

Synopsis
	  explicit  basic_istream(  std::basic_streambuf<CharT,	Traits>* sb );
       (1)
	  protected:
       (2) (since C++11)
	  basic_istream( const basic_istream& rhs ) = delete;
	  protected:
       (3) (since C++11)
	  basic_istream( basic_istream&& rhs );

	  1) Constructs	the basic_istream object, assigning initial values  to
       the base	class
	  by calling basic_ios::init(sb). The value of gcount()	is initialized
       to zero.

	  2)  The copy constructor is protected, and is	deleted. Input streams
       are not
	  copyable.

	  3) The move constructor copies the value of gcount() from rhs,  sets
       the gcount()
	  value	 of  rhs to zero, and uses basic_ios<CharT, Traits>::move(rhs)
       to move all
	  basic_ios members, except for	the rdbuf(), from rhs into *this. This
       move
	  constructor is protected: it is called by the	move  constructors  of
       movable input
	  stream  classes  std::basic_ifstream	and  std::basic_istringstream,
       which know how to
	  correctly move the associated	stream buffer.

Parameters
	  sb - streambuffer to use as underlying device

Example
       // Run this code

	#include <iostream>
	#include <sstream>

	int main()
	{
	    std::istringstream s1("hello");
	    std::istream s2(s1.rdbuf()); // OK:	s2 shares the buffer with s1

	//  std::istream s3(std::istringstream("test")); // ERROR:  move  con-
       structor	is protected
	//   std::istream  s4(s2);			   // ERROR: copy con-
       structor	is deleted
	    std::istringstream s5(std::istringstream("world"));	 //  OK:  move
       ctor called
								//	by de-
       rived class

	    std::cout << s2.rdbuf() << ' ' << s5.rdbuf() << '\n';
	}

Output:
	hello world

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

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

home | help