The following code example is taken from the book
C++23 - The Complete Guide
by Nicolai M. Josuttis,
Leanpub, 2026
The code is licensed under a
Creative Commons Attribution 4.0 International License.
// raw code
#include <print>
#include <spanstream>
int main()
{
// fix-sized buffer initialized with 33 '?' and a null terminator:
constexpr int len = 33;
char buf[len+1]{};
for (int i = 0; i < len; ++i) buf[i] = '?';
std::println("buf: {:?}", buf);
// create a span stream to the whole static char buffer:
std::ospanstream strBuf{buf};
double d = 47.11;
strBuf << "d: " << d;
std::println("buf: {:?}", buf);
auto sp1 = strBuf.span();
std::println("{} chars: {}", sp1.size(), sp1);
strBuf << '\0';
std::println("buf: {:?}", buf);
auto sp2 = strBuf.span();
std::println("{} chars: {}", sp2.size(), sp2);
}