| 792 | } |
| 793 | |
| 794 | span<const value_type> read_buffer() |
| 795 | { |
| 796 | if (buffer_len_ == 0) |
| 797 | { |
| 798 | buffer_len_ = read(buffer_.data(), buffer_.size()); |
| 799 | } |
| 800 | std::size_t length = buffer_len_; |
| 801 | buffer_len_ = 0; |
| 802 | |
| 803 | return span<const value_type>(buffer_.data(), length); |
| 804 | } |
| 805 | |
| 806 | template <typename Category = iterator_category> |
| 807 | typename std::enable_if<std::is_same<Category,std::random_access_iterator_tag>::value, std::size_t>::type |