OpenTTD Source: EndianBufferWriter< Tcont, Titer > Class Template Reference

OpenTTD Source 14.0-beta1

Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
EndianBufferWriter< Tcont, Titer > Class Template Reference

Endian-aware buffer adapter that always writes values in little endian order. More...

`#include <endian_buffer.hpp>`

## Public Member Functions
| EndianBufferWriter (Titer buffer)
| EndianBufferWriter (typename Titer::container_type &container)
EndianBufferWriter & | operator<< (const std::string &data)
EndianBufferWriter & | operator<< (const char *data)
EndianBufferWriter & | operator<< (std::string_view data)
EndianBufferWriter & | operator<< (bool data)
template<typename T >
EndianBufferWriter & | operator<< (const OverflowSafeInt< T > &data)
template<typename... Targs>
EndianBufferWriter & | operator<< (const std::tuple< Targs... > &data)
template<class T , std::enable_if_t< std::disjunction_v< std::negation< std::is_class< T >>, std::is_base_of< StrongTypedefBase, T >>, int > = 0>
EndianBufferWriter & | operator<< (const T data)

## Static Public Member Functions
template<typename Tvalue , typename Tbuf = std::vector<byte>>
static Tbuf | FromValue (const Tvalue &data)

## Private Member Functions
template<class Ttuple , size_t... Tindices>
void | WriteTuple (const Ttuple &values, std::index_sequence< Tindices... >)
| Helper function to write a tuple to the buffer.
void | Write (std::string_view value)
| Write overload for string values.
template<class T >
void | Write (T value)
| Fundamental write function.

## Private Attributes
Titer | buffer
| Output iterator for the destination buffer.

## Detailed Description

### template<typename Tcont = typename std::vector<byte>, typename Titer = typename std::back_insert_iterator<Tcont>>
class EndianBufferWriter< Tcont, Titer >

Endian-aware buffer adapter that always writes values in little endian order.

Note
  This class uses operator overloading (<<, just like streams) for writing as this allows providing custom operator overloads for more complex types like e.g. structs without needing to modify this class.

Definition at line 26 of file endian_buffer.hpp.

The documentation for this class was generated from the following file:

- src/misc/endian_buffer.hpp