GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::basic_ostream::basic_ostream(3) C++ Standard Libary std::basic_ostream::basic_ostream(3)

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


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.


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


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.

// 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";
}


7.1

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.