Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
A span is a view over a contiguous sequence of objects. It provides fast and bounds-safe access. Unlike vector or array, it doesn't "own" the elements.
See span class for detailed information. Here's an example of how to use a span:
#include <span>
#include <iostream>
void Show(std::span<int> someValues)
{
// show values in reverse
for (auto rIt = someValues.rbegin(); rIt != someValues.rend(); ++rIt)
{
std::cout << *rIt;
}
// show a subspan
for (auto& i : someValues.subspan(1, 2))
{
std::cout << i;
}
}
int main()
{
int numbers[]{ 0,1,2,3,4 };
Show(numbers); // note conversion from array to span
}
Requirements
Header: <span>
Namespace: std
Compiler option: /std:c++20 or later is required.
Members
Classes
| Name | Description |
|---|---|
span |
Provides a view over a contiguous sequence of objects. |
Operators
| Name | Description |
|---|---|
operator= |
Span assignment |
operator[] |
Element access |
Functions
| Name | Description |
|---|---|
as_bytes |
Get the underlying read-only bytes of the span. |
as_writable_bytes |
Get the underlying bytes of the span. |
Constants
| Name | Description |
|---|---|
dynamic_extent |
Indicates that the span size is determined at runtime rather than compile time. When the number of elements in the span is known at compile time, it's specified as the Extent template parameter. When the number isn't known until runtime, specify dynamic_extent instead. |