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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_ostream::basic_ostream - std::basic_ostream::basic_ostream

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

	  1) Constructs	the basic_ostream object, assigning initial values  to
       the base	class
	  by calling basic_ios::init(sb).

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

	  3)  The move constructor 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 output
	  stream  classes  std::basic_ofstream	and  std::basic_ostringstream,
       which know how to
	  correctly move the associated	streambuffer.

Parameters
	  sb  -	streambuffer to	use as output sequence
	  rhs -	basic_ostream to initialize from

Notes
	  Because basic_ios::init(sb) sets badbit when sb is a	null  pointer,
       and because
	  basic_ostream::sentry	 does  nothing	if  the	stream is already in a
       failed state,
	  writing to a stream constructed from a null pointer sb is a no-op.

Example
       // Run this code

	#include <sstream>
	#include <utility>
	#include <iostream>

	int main()
	{
	    // ERROR: copy ctor	is deleted
	//  std::ostream myout(std::cout);

	    // OK: shares buffer with cout
	    std::ostream myout(std::cout.rdbuf());

	    // ERROR: move constructor is protected
	//  std::ostream s2(std::move(std::ostringstream() << 7.1));

	    // OK: move	ctor called through the	derived	class
	    std::ostringstream s2(std::move(std::ostringstream() << 7.1));
	    myout << s2.str() << '\n';

	    std::ostream dev_null{nullptr}; // see Notes above
	    dev_null <<	"no-op";
	}

Output:
	7.1

http://cppreference.com		  2022.07.31	 std::basic_...asic_ostream(3)

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

home | help