| 12345678910111213141516171819 | 
							- #pragma once
 
- #include <cstddef>
 
- #include <istream>
 
- #include <streambuf>
 
- namespace bell {
 
- struct MemoryBuffer : std::streambuf {
 
-   MemoryBuffer(std::byte const* base, size_t size) {
 
-     std::byte* p(const_cast<std::byte*>(base));
 
-     this->setg((char*)p, (char*)p, (char*)p + size);
 
-   }
 
- };
 
- struct IMemoryStream : virtual MemoryBuffer, std::istream {
 
-   IMemoryStream(std::byte const* base, size_t size)
 
-       : MemoryBuffer(base, size),
 
-         std::istream(static_cast<std::streambuf*>(this)) {}
 
- };
 
- }  // namespace bell
 
 
  |