Proposed resolution:
This wording is relative to the N4734.
Modify [buffer.reqmts.mutablebuffersequence], Table 12 "MutableBufferSequence requirements", as indicated:
Table 12 — MutableBufferSequence requirements expression return type assertion/note
pre/post-conditionnet::buffer_sequence_begin(x)
net::buffer_sequence_end(x)An iterator type whose reference type
is convertible to mutable_buffer and which
satisfies all the requirements for bidirectional
iterators (C++ 2014 [bidirectional.iterators]) except that:
- there is no requirement that operator-> is provided, and
- there is no requirement that reference
be a reference type., and- for iterators a and b
there is no requirement that a == b if and
only if *a and *b are bound to the
same object, and- a == b if and only if
distance(buffer_sequence_begin(x), a) == distance(buffer_sequence_begin(x), b)[…]
Modify [buffer.reqmts.constbuffersequence], Table 13 "ConstBufferSequence requirements", as indicated:
Table 13 — ConstBufferSequence requirements expression return type assertion/note
pre/post-conditionnet::buffer_sequence_begin(x)
net::buffer_sequence_end(x)An iterator type whose reference type is convertible to
const_buffer and which satisfies all the requirements for
bidirectional iterators (C++ 2014 [bidirectional.iterators]) except that:
- there is no requirement that operator-> is provided, and
- there is no requirement that reference be a reference
type., and- for iterators a and b there is no
requirement that a == b if and only if *a and
*b are bound to the same object, and- a == b if and only if
distance(buffer_sequence_begin(x), a) == distance(buffer_sequence_begin(x), b)[…]