On 15/03/2022 07:13, Robert Dodier wrote:
Given that there does not appear to be a concatenated stream class in Boost, I wonder what is the minimal set of member functions which must be implemented for a new input stream class. For example, it is plausible that it is necessary to define a constructor and a member function to get the next character (ignoring efficiency concerns). If there is any 25 words or less summary, or a pointer to a tutorial or blog post, etc., about implementing new input stream classes, I would be very interested to hear about it.
Boost.Iostreams is a library dedicated to making creation of new stream types easier. Having said that, it's still rooted in the C++03 world, so it might be missing some potential optimisations from modern C++. Mind you, so are streams. Surprisingly, it doesn't look like Iostreams already has a concatenating Source, which seems like it might have been a good fit for your use case and the library itself. Perhaps you could contribute one?