Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards


Buffer-oriented synchronous read stream requirements

A type X meets the SyncReadStream requirements if it satisfies the requirements listed below.

In the table below, a denotes a value of type X, mb denotes a (possibly const) value satisfying the MutableBufferSequence requirements, and ec denotes an object of type error_code.

Table 31. SyncReadStream requirements



semantics, pre/post-conditions



Meets the requirements for a read operation.

If buffer_size(mb) > 0, reads one or more bytes of data from the stream a into the buffer sequence mb. If successful, sets ec such that !ec is true, and returns the number of bytes read. If an error occurred, sets ec such that !!ec is true, and returns 0. If all data has been read from the stream, and the stream performed an orderly shutdown, sets ec to stream_errc::eof and returns 0.

If buffer_size(mb) == 0, the operation shall not block. Sets ec such that !ec is true, and returns 0.