Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
A stream class that can do both input and output.
Syntax
template <class Elem, class Tr = char_traits<Elem>>
class basic_iostream : public basic_istream<Elem, Tr>,
public basic_ostream<Elem, Tr>
{
public:
explicit basic_iostream(basic_streambuf<Elem, Tr>* strbuf);
virtual ~basic_iostream();
};
Remarks
The class template describes an object that controls insertions, through its base class basic_ostream< Elem, Tr>, and extractions, through its base class basic_istream< Elem, Tr>. The two objects share a common virtual base class basic_ios< Elem, Tr>. They also manage a common stream buffer, with elements of type Elem, whose character traits are determined by the class Tr. The constructor initializes its base classes through basic_istream( strbuf) and basic_ostream( strbuf).
Constructors
| Constructor | Description |
|---|---|
| basic_iostream | Create a basic_iostream object. |
Member functions
| Member function | Description |
|---|---|
| swap | Exchanges the contents of the provided basic_iostream object for the contents of this object. |
Operators
| Operator | Description |
|---|---|
| operator= | Assigns the value of a specified basic_iostream object to this object. This is a move assignment involving an rvalue that does not leave a copy behind. |
Requirements
Header: <istream>
Namespace: std
basic_iostream::basic_iostream
Create a basic_iostream object.
explicit basic_iostream(basic_streambuf<Elem, Tr>* strbuf);
basic_iostream(basic_iostream&& right);
basic_iostream();
Parameters
strbuf
An existing basic_streambuf object.
right
An existing basic_iostream object that is used to construct a new basic_iostream.
Remarks
The first constructor initializes the base objects by way of basic_istream(strbuf) and basic_ostream(strbuf).
The second constructor initializes the base objects by calling move(right).
basic_iostream::operator=
Assign the value of a specified basic_iostream object to this object. This is a move assignment involving an rvalue that does not leave a copy behind.
basic_iostream& operator=(basic_iostream&& right);
Parameters
right
An rvalue reference to a basic_iostream object to assign from.
Remarks
The member operator calls swap(right).
basic_iostream::swap
Exchanges the contents of the provided basic_iostream object for the contents of this object.
void swap(basic_iostream& right);
Parameters
right
The basic_iostream object to swap.
Remarks
The member function calls swap(right).
See also
Thread Safety in the C++ Standard Library
iostream Programming
iostreams Conventions