The following code example is taken from the book
C++20 - The Complete Guide
by Nicolai M. Josuttis,
Leanpub, 2021
The code is licensed under a
Creative Commons Attribution 4.0 International License.
// raw code
#ifndef SPANPRINT_HPP
#define SPANPRINT_HPP
#include <iostream>
#include <span>
template<typename T, std::size_t Sz>
void printSpan(std::span<T, Sz> sp)
{
std::cout << '[' << sp.size() << " elems";
if constexpr (Sz == std::dynamic_extent) {
std::cout << " (dynamic)";
}
else {
std::cout << " (fixed)";
}
std::cout << ':';
for (const auto& elem : sp) {
std::cout << ' ' << elem;
}
std::cout << "]\n";
}
#endif // SPANPRINT_HPP