std::spanstream — stream interface over std::span.
1#include <spanstream>23// Read from buffer4char buffer[] = "Hello World";5std::ispanstream is(buffer);6std::string word;7is >> word; // "Hello"89// Write to buffer10char out[100] = {};11std::ospanstream os(out);12os << "Value: " << 42;13std::cout << out; // "Value: 42"1415// Read from vector16std::vector<char> vec = {'H', 'i', '!', '\0'};17std::ispanstream is2(std::span<char>(vec));18std::string s;19is2 >> s; // "Hi!"2021// Format output22char result[50] = {};23std::ospanstream os2(result);24os2 << std::hex << 255;25std::cout << result; // "ff"2627// Bidirectional28std::spanstream ss(std::span<char>(out));29ss << "New content";30ss.seekg(0);31std::string content;32ss >> content;
Benefits: