26#ifndef ETL_BYTE_INCLUDED
27#define ETL_BYTE_INCLUDED
34#if ETL_USING_CPP11 && !defined(ETL_BYTE_FORCE_CPP03_IMPLEMENTATION)
36 enum class byte :
unsigned char {};
41 template <
typename TInteger>
52 template <
typename TInteger>
57 return etl::byte(
static_cast<unsigned int>(b) << shift);
63 template <
typename TInteger>
68 return etl::byte(
static_cast<unsigned int>(b) >> shift);
74 template <
typename TInteger>
79 return b = b << shift;;
85 template <
typename TInteger>
90 return b = b >> shift;
98 return etl::byte(
static_cast<unsigned int>(lhs) |
static_cast<unsigned int>(rhs));
106 return etl::byte(
static_cast<unsigned int>(lhs) &
static_cast<unsigned int>(rhs));
114 return etl::byte(
static_cast<unsigned int>(lhs) ^
static_cast<unsigned int>(rhs));
122 return lhs = lhs | rhs;
130 return lhs = lhs & rhs;
138 return lhs = lhs ^ rhs;
146 return etl::byte(~
static_cast<unsigned int>(b));
159 template <
typename TInteger>
173 template <
typename T>
175 : value(
static_cast<unsigned char>(
v))
180 template <
typename T>
183 return static_cast<T>(value);
197 return (
lhs.value ==
rhs.value);
211 template <
typename TInteger>
221 template <
typename TInteger>
231 template <
typename TInteger>
241 template <
typename TInteger>
253 template <
typename TInteger>
The byte class.
Definition byte.h:155
friend bool operator==(etl::byte lhs, etl::byte rhs)
Equality test.
Definition byte.h:195
friend etl::enable_if< etl::is_integral< TInteger >::value, TInteger >::type to_integer(etl::byte b)
To integer.
Definition byte.h:213
bitset_ext
Definition absolute.h:38
etl::enable_if< etl::is_integral< TInteger >::value, etl::byte >::type operator<<(etl::byte b, TInteger shift)
Shift left.
Definition byte.h:223
etl::byte operator~(etl::byte b)
Not.
Definition byte.h:313
etl::byte & operator^=(etl::byte &lhs, etl::byte rhs)
Exclusive or equals.
Definition byte.h:305
etl::enable_if< etl::is_integral< TInteger >::value, etl::byte & >::type operator<<=(etl::byte &b, TInteger shift)
Shift left equals.
Definition byte.h:243
etl::byte operator|(etl::byte lhs, etl::byte rhs)
Or.
Definition byte.h:265
etl::byte & operator|=(etl::byte &lhs, etl::byte rhs)
Or equals.
Definition byte.h:289
etl::enable_if< etl::is_integral< TInteger >::value, TInteger >::type to_integer(etl::byte b)
To integer.
Definition byte.h:213
etl::byte operator&(etl::byte lhs, etl::byte rhs)
And.
Definition byte.h:273
bool operator!=(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:654
etl::enable_if< etl::is_integral< TInteger >::value, etl::byte >::type operator>>(etl::byte b, TInteger shift)
Shift right.
Definition byte.h:233
etl::byte operator^(etl::byte lhs, etl::byte rhs)
Exclusive Or.
Definition byte.h:281
bool operator==(const etl::array< T, SIZE > &lhs, const etl::array< T, SIZE > &rhs)
Definition array.h:642
etl::enable_if< etl::is_integral< TInteger >::value, etl::byte & >::type operator>>=(etl::byte &b, TInteger shift)
Shift right equals.
Definition byte.h:255
etl::byte & operator&=(etl::byte &lhs, etl::byte rhs)
And equals.
Definition byte.h:297
pair holds two objects of arbitrary type
Definition utility.h:164