<span> 函数

<span> 标头包含以下非成员函数,作用于 span 对象。

非成员函数 描述
as_bytes 获取跨度中元素的对象表示形式的只读视图。
as_writable_bytes 获取跨度中元素的对象表示形式的读/写视图。

as_bytes

获取跨度中元素的对象表示形式的只读视图。

template <class T, size_t Extent>
auto as_bytes(span<T, Extent> s) noexcept;

参数

T
跨度中元素的类型。

Extent
跨度中的元素数(如果编译时已知),否则为 dynamic_extent,指示直到运行时才知道元素数。

s
获取其原始表示形式的跨度。

返回值

存储在跨度中的第一个项的 span<const byte, S>,其中 S{reinterpret_cast<const std::byte*>(s.data()), s.size_bytes()}

示例

#include <span>
#include <iostream>

using namespace std;

void main()
{
    int a[] = { 0,1,2 };
    span <int> mySpan(a);
    auto bytes = std::as_bytes(mySpan);
}

as_writable_bytes

如果 T 不是 const,则获取跨度中元素的原始字节表示形式的读/写视图。

template <class T, size_t Extent>
auto as_writable_bytes(span<T, Extent> s) noexcept;

参数

T
跨度中元素的类型。

Extent
跨度中的元素数(如果编译时已知),否则为 dynamic_extent,指示直到运行时才知道元素数。

s
获取其原始表示形式的跨度。

返回值

存储在跨度中的第一个项的 span<byte, S>,其中 S{reinterpret_cast<std::byte*>(s.data()), s.size_bytes()}

示例

#include <span>
#include <iostream>

using namespace std;

void main()
{
    int a[] = { 0,1,2 };
    span <int> mySpan(a);
    auto bytes = as_writable_bytes(mySpan);
}

请参阅

<span>