Integer Types

namespace gba

Typedefs

using int8 = int_type<8>::type

8-bit signed type

using int16 = int_type<16>::type

16-bit signed type

using int32 = int_type<32>::type

32-bit signed type

using uint8 = uint_type<8>::type

8-bit unsigned type

using uint16 = uint_type<16>::type

16-bit unsigned type

using uint32 = uint_type<32>::type

32-bit unsigned type

template<unsigned Bits>
struct int_type
#include <int_type.hpp>

Signed integer types

tparam Bits

minimum size of this integer type in bits

Public Types

using type = typename std::conditional<Bits <= 8, std::int8_t, typename std::conditional<Bits <= 16, std::int16_t, typename std::conditional<Bits <= 32, std::int32_t, std::int64_t>::type>::type>::type

Exact-width integer type.

using least = typename std::conditional<Bits <= 8, std::int_least8_t, typename std::conditional<Bits <= 16, std::int_least16_t, typename std::conditional<Bits <= 32, std::int_least32_t, std::int_least64_t>::type>::type>::type

Minimum-width integer type.

using fast = typename std::conditional<Bits <= 8, std::int_fast8_t, typename std::conditional<Bits <= 16, std::int_fast16_t, typename std::conditional<Bits <= 32, std::int_fast32_t, std::int_fast64_t>::type>::type>::type

Fastest minimum-width integer type.

Public Static Functions

static inline constexpr auto min() noexcept

Smallest possible value to be stored in this type

Returns

-(2^(Bits-1))

static inline constexpr auto max() noexcept

Largest possible value to be stored in this type

Returns

(2^(Bits-1))-1

template<unsigned int Bits>
struct uint_type
#include <int_type.hpp>

Unsigned integer types

tparam Bits

minimum size of this integer type in bits

Public Types

using type = typename std::conditional<Bits <= 8, std::uint8_t, typename std::conditional<Bits <= 16, std::uint16_t, typename std::conditional<Bits <= 32, std::uint32_t, std::uint64_t>::type>::type>::type

Exact-width integer type.

using least = typename std::conditional<Bits <= 8, std::uint_least8_t, typename std::conditional<Bits <= 16, std::uint_least16_t, typename std::conditional<Bits <= 32, std::uint_least32_t, std::uint_least64_t>::type>::type>::type

Minimum-width integer type.

using fast = typename std::conditional<Bits <= 8, std::uint_fast8_t, typename std::conditional<Bits <= 16, std::uint_fast16_t, typename std::conditional<Bits <= 32, std::uint_fast32_t, std::uint_fast64_t>::type>::type>::type

Fastest minimum-width integer type.

Public Static Functions

static inline constexpr auto min() noexcept

Smallest possible value to be stored in this type

Returns

0

static inline constexpr auto max() noexcept

Largest possible value to be stored in this type

Returns

(2^Bits)-1