C/C++ API Reference
Loading...
Searching...
No Matches
Byte arrays

Overview

Compile-time construction of byte arrays.

Functions

template<typename B = std::byte, typename... Args>
PW_CONSTEVAL auto pw::bytes::Concat (Args... args)
 
template<typename B = std::byte, size_t kSize, typename Indices = std::make_index_sequence<kSize - 1>>
PW_CONSTEVAL auto pw::bytes::String (const char(&str)[kSize])
 Converts a string literal to an array of bytes, without the trailing '\0'.
 
template<typename B = std::byte>
PW_CONSTEVAL auto pw::bytes::String (const char(&)[1])
 String overload for the empty string "".
 
template<typename B , auto... values>
PW_CONSTEVAL auto pw::bytes::Array ()
 
template<auto... values>
PW_CONSTEVAL auto pw::bytes::Array ()
 Array() defaults to using std::byte.
 
template<typename B , size_t kSize, typename T >
constexpr auto pw::bytes::Initialized (const T &value_or_function)
 
template<size_t kSize, typename T >
constexpr auto pw::bytes::Initialized (const T &value_or_function)
 Initialized(value_or_function) defaults to using std::byte.
 
template<typename B = std::byte, typename... Args>
constexpr auto pw::bytes::MakeArray (const Args &... args)
 

Function Documentation

◆ Array()

template<typename B , auto... values>
PW_CONSTEVAL auto pw::bytes::Array ( )

Creates an array of bytes from values passed as template parameters. The values are guaranteed to be representable in the destination byte type.

◆ Concat()

template<typename B = std::byte, typename... Args>
PW_CONSTEVAL auto pw::bytes::Concat ( Args...  args)

Concatenates arrays or integers as a byte array at compile time. Integer values are copied little-endian. Spans are copied byte-for-byte.

◆ Initialized()

template<typename B , size_t kSize, typename T >
constexpr auto pw::bytes::Initialized ( const T &  value_or_function)
constexpr

Creates an initialized array of bytes. Initializes the array to a value or the return values from a function that accepts the index as a parameter.

◆ MakeArray()

template<typename B = std::byte, typename... Args>
constexpr auto pw::bytes::MakeArray ( const Args &...  args)
constexpr

Creates an array of bytes from a series of function arguments. Unlike Array(), MakeArray() cannot check if the values fit in the destination type. MakeArray() should only be used when Array() is not suitable.