Skip to content

Latest commit

 

History

History
80 lines (58 loc) · 2.1 KB

span.md

File metadata and controls

80 lines (58 loc) · 2.1 KB
title description ms.date f1_keywords helpviewer_keywords dev_langs
<span>
API reference for the Standard Template Library (STL) span namespace, which provides a lightweight view over a contiguous sequence of objects.
05/28/2020
<span>
span header
C++

<span>

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.

See also

Header Files Reference