std::as_bytes, std::as_writable_bytes - cppreference.com (original) (raw)

Defined in header
template< class T, std::size_t N > std::span<const std::byte, S/* see below */> as_bytes( std::span<T, N> s ) noexcept; (1) (since C++20)
template< class T, std::size_t N > std::span<std::byte, S/* see below */> as_writable_bytes( std::span<T, N> s ) noexcept; (2) (since C++20)

Obtains a view to the object representation of the elements of the span s.

If N is std::dynamic_extent, the extent of the returned span S is also std::dynamic_extent; otherwise it is sizeof(T) * N.

as_writable_bytes only participates in overload resolution if std::is_const_v<T> is false.

[edit] Return value

  1. A span constructed with {reinterpret_cast<const std::byte*>(s.data()), s.size_bytes()}.

  2. A span constructed with {reinterpret_cast<std::byte*>(s.data()), s.size_bytes()}.

[edit] Example

Possible output:

3.14159 = { D8 0F 49 40 } -3.14159 = { D8 0F 49 C0 }

[edit] See also