A C++ template library for embedded applications
MIT licensed
Designed and
maintained by
John Wellbelove

Endian

Constants & utilities for endianess

The values for endianness are dependant on the platform setup.

If ETL_ENDIAN_NATIVE is defined by the user, then
  etl::endian::little = 0
  etl::endian::big    = 1

If ETL_ENDIAN_NATIVE is not defined by the user, then the ETL selects an appropriate definition.
If ETL_CPP20_SUPPORTED == 1 and ETL_USING_STL == 1 then
  etl::endian::little = std::endian::little
  etl::endian::big    = std::endian::big
  etl::endian::native = std::endian::native

else, if __BYTE_ORDER__ is defined then
  If __ORDER_LITTLE_ENDIAN__ is defined then
    etl::endian::little __ORDER_LITTLE_ENDIAN__
    etl::endian::big    __ORDER_BIG_ENDIAN__
    etl::endian::native __BYTE_ORDER__

  else if __LITTLE_ENDIAN__ is defined
    etl::endian::little __LITTLE_ENDIAN__
    etl::endian::big    __BIG_ENDIAN__
    etl::endian::native __BYTE_ORDER__

else
  The user needs to define ETL_ENDIAN_NATIVE either as 0 for little endian or 1 for big endian.
____________________________________________________________________________________________________

endian


A smart enumeration defining little and big members.

etl::endian::little;
etl::endian::big;
____________________________________________________________________________________________________

endianness


Interrogates the endianness of the platform.

etl::endian operator ()() const
constexpr if ETL_CPP11_SUPPORTED == 1 and ETL_ENDIAN_NATIVE is defined.
____________________________________________________________________________________________________
operator etl::endian() const
constexpr if ETL_CPP11_SUPPORTED == 1 and ETL_ENDIAN_NATIVE is defined.
____________________________________________________________________________________________________
static etl::endian value()
constexpr if ETL_CPP11_SUPPORTED == 1 and ETL_ENDIAN_NATIVE is defined.
____________________________________________________________________________________________________

Host to network


template <typename T>
T hton(T value)
____________________________________________________________________________________________________

Network to host


template <typename T>
T ntoh(T value)
endianness.h