The class transfer_exactly is a completion condition that is used to specify that a read or write operation should continue until an exact number of bytes has been transferred, or until an error occurs.
namespace std {
namespace experimental {
namespace net {
inline namespace v1 {
  class transfer_exactly
  {
  public:
    explicit transfer_exactly(size_t e);
    size_t operator()(const error_code& ec, size_t n) const;
  private:
    size_t exact_; // exposition only
  };
} // inline namespace v1
} // namespace net
} // namespace experimental
} // namespace std
The class transfer_exactly satisfies the CompletionCondition ([buffer.stream.reqmts.completioncondition]) requirements.
explicit transfer_exactly(size_t e);
Postconditions: exact_ == e.
size_t operator()(const error_code& ec, size_t n) const;
Returns: If !ec && n < exact_, the result of min(exact_ - n, N), where N is an unspecified non-zero value. Otherwise 0.