You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
2.3 KiB
C++

/*! \file
* \brief Definition of standard integer types with specified widths and their
* limits
*/
#pragma once
// Standard Integer Types
using uint8_t = unsigned char;
using uint16_t = unsigned short;
using uint32_t = unsigned int;
using uint64_t = unsigned long long;
using uintptr_t = unsigned long long;
using size_t = __SIZE_TYPE__;
using int8_t = char;
using int16_t = short;
using int32_t = int;
using int64_t = long long;
using intptr_t = long long;
using ssize_t = long int;
using ptrdiff_t = __PTRDIFF_TYPE__;
// Validate typedef size
static_assert(sizeof(int8_t) == (1), "Wrong size for 'int8_t'");
static_assert(sizeof(int16_t) == (2), "Wrong size for 'int16_t'");
static_assert(sizeof(int32_t) == (4), "Wrong size for 'int32_t'");
static_assert(sizeof(int64_t) == (8), "Wrong size for 'int64_t'");
static_assert(sizeof(intptr_t) == sizeof(void*), "Wrong size for 'intptr_t'");
static_assert(sizeof(uint8_t) == (1), "Wrong size for 'uint8_t'");
static_assert(sizeof(uint16_t) == (2), "Wrong size for 'uint16_t'");
static_assert(sizeof(uint32_t) == (4), "Wrong size for 'uint32_t'");
static_assert(sizeof(uint64_t) == (8), "Wrong size for 'uint64_t'");
static_assert(sizeof(uintptr_t) == sizeof(void*), "Wrong size for 'uintptr_t'");
// Limits
constexpr int8_t INT8_MIN = (-__INT8_MAX__ - 1);
constexpr int8_t INT8_MAX = (__INT8_MAX__);
constexpr int16_t INT16_MIN = (-__INT16_MAX__ - 1);
constexpr int16_t INT16_MAX = (__INT16_MAX__);
constexpr int32_t INT32_MIN = (-__INT32_MAX__ - 1);
constexpr int32_t INT32_MAX = (__INT32_MAX__);
constexpr int64_t INT64_MIN = (-__INT64_MAX__ - 1);
constexpr int64_t INT64_MAX = (__INT64_MAX__);
constexpr intptr_t INTPTR_MIN = (-__INTPTR_MAX__ - 1);
constexpr intptr_t INTPTR_MAX = (__INTPTR_MAX__);
constexpr uint8_t UINT8_MAX = (__UINT8_MAX__);
constexpr uint16_t UINT16_MAX = (__UINT16_MAX__);
constexpr uint32_t UINT32_MAX = (__UINT32_MAX__);
constexpr uint64_t UINT64_MAX = (__UINT64_MAX__);
constexpr uintptr_t UINTPTR_MAX = (__UINTPTR_MAX__);
constexpr ptrdiff_t PTRDIFF_MIN = (-__PTRDIFF_MAX__ - 1);
constexpr ptrdiff_t PTRDIFF_MAX = (__PTRDIFF_MAX__);
constexpr size_t SIZE_MAX = (__SIZE_MAX__);
constexpr ssize_t SSIZE_MIN = (-__INT32_MAX__ - 1);
constexpr ssize_t SSIZE_MAX = (__INT32_MAX__);
/// The name of our OS
constexpr char* OS_NAME =
"MP"
"StuBS";