The class template span describes an object that can refer
to a contiguous sequence of objects with the first element of the sequence at position zero.
A span can either have a static extent, in which case the number of elements in the sequence is known at
compile-time and encoded in the type, or a dynamic extent.