### Buffer-oriented synchronous write stream requirements

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

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

Table 33. SyncWriteStream requirements

operation | type | semantics, pre/post-conditions
--- | --- | ---

`a.write_some(cb)`
`a.write_some(cb,ec)`

`size_t`

Meets the requirements for a write operation.
If `buffer_size(cb) > 0`, writes one or more bytes of data to the stream `a` from the buffer sequence `cb`. If successful, sets `ec` such that `!ec` is `true`, and returns the number of bytes written. If an error occurred, sets `ec` such that `!!ec` is `true`, and returns 0.
If `buffer_size(cb) == 0`, the operation shall not block. Sets `ec` such that `!ec` is `true`, and returns 0.