Edit

Share via


basic_iostream Class

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