19 #ifndef _MINLIB_37360095_2231_4183_8f0e_f55524c5cda1_H_
20 #define _MINLIB_37360095_2231_4183_8f0e_f55524c5cda1_H_
33 #define MNTHREAD_STATIC_CAST_BYTE(BYTE) static_cast<unsigned char>(BYTE)
35 #define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
38 #define BitsInType(t) (sizeof(t) * CHAR_BIT)
41 #define BitMask(t,n) (t(~t(0)) >> (BitsInType(t) - (n)))
76 constexpr
double pi = 3.14159265358979;
79 constexpr
double e = 2.71828182845905;
82 constexpr
double root2 = 1.41421356237310;
84 constexpr
double euler = 0.57721566490153;
88 enum class byte : unsigned char { };
92 template<
typename IntegerType>
97 template<
typename IntegerType>
102 template<
typename IntegerType>
103 inline constexpr
byte operator << (
byte& b, IntegerType shift) noexcept {
107 template<
typename IntegerType>
108 inline constexpr
byte operator >> (
byte& b, IntegerType shift) noexcept {
112 inline constexpr
bool operator==(
const byte l,
const byte r ) noexcept {
116 inline constexpr
bool operator!=(
const byte l,
const byte r ) noexcept {
120 inline constexpr
bool operator< (
const byte l,
const byte r ) noexcept {
124 inline constexpr
bool operator<=(
const byte l,
const byte r ) noexcept {
128 inline constexpr
bool operator> (
const byte l,
const byte r ) noexcept {
132 inline constexpr
bool operator>=(
const byte l,
const byte r ) noexcept {
150 inline constexpr
byte operator | (
const byte& lhr,
const byte& rhr) noexcept {
154 inline constexpr
byte operator ^ (
const byte& lhr,
const byte& rhr) noexcept {
158 inline constexpr
byte operator & (
const byte& lhr,
const byte& rhr) noexcept {
#define MN_THREAD_CONFIG_SIZE_TYPE
Definition: mn_config.hpp:127
#define MNTHREAD_STATIC_CAST_BYTE(BYTE)
Definition: mn_def.hpp:33
constexpr double root2_reciprocal
Definition: mn_def.hpp:83
constexpr double pi_squared
Definition: mn_def.hpp:78
constexpr double e
Definition: mn_def.hpp:79
constexpr double root2
Definition: mn_def.hpp:82
constexpr double pi_reciprocal
Definition: mn_def.hpp:77
constexpr double e_squared
Definition: mn_def.hpp:81
constexpr double euler
Definition: mn_def.hpp:84
constexpr double pi
Definition: mn_def.hpp:76
constexpr double golden_ratio
Definition: mn_def.hpp:85
constexpr double e_reciprocal
Definition: mn_def.hpp:80
Definition: mn_allocator_typetraits.hpp:25
constexpr bool operator==(const byte l, const byte r) noexcept
Definition: mn_def.hpp:112
constexpr byte operator~(byte b) noexcept
Definition: mn_def.hpp:162
nullptr_t addrof_null_t
Definition: mn_def.hpp:46
memory_order operator&(memory_order mMemOrder, modifier::memory_order mod)
Definition: mn_atomic_flags.hpp:63
unsigned long uintmax_t
Definition: mn_def.hpp:52
unsigned long uptrdiff_t
Definition: mn_def.hpp:50
byte operator^=(byte &lhr, const byte rhr) noexcept
Definition: mn_def.hpp:145
constexpr byte operator<<(byte &b, IntegerType shift) noexcept
Definition: mn_def.hpp:103
constexpr bool operator!=(const byte l, const byte r) noexcept
Definition: mn_def.hpp:116
constexpr size_t max_alignment
Definition: mn_def.hpp:55
byte operator|=(byte &lhr, const byte rhr) noexcept
Definition: mn_def.hpp:136
constexpr bool operator<=(const byte l, const byte r) noexcept
Definition: mn_def.hpp:124
constexpr byte operator>>(byte &b, IntegerType shift) noexcept
Definition: mn_def.hpp:108
long ptrdiff_t
Definition: mn_def.hpp:49
memory_order operator|(memory_order mMemOrder, modifier::memory_order mod)
Definition: mn_atomic_flags.hpp:59
constexpr bool operator<(const byte l, const byte r) noexcept
Definition: mn_def.hpp:120
constexpr byte operator^(const byte &lhr, const byte &rhr) noexcept
Definition: mn_def.hpp:154
constexpr bool operator>=(const byte l, const byte r) noexcept
Definition: mn_def.hpp:132
uintptr_t max_align_t
Definition: mn_def.hpp:44
byte
Definition: mn_def.hpp:88
signed long intmax_t
Definition: mn_def.hpp:51
byte & operator<<=(byte &b, IntegerType shift) noexcept
Definition: mn_def.hpp:93
decltype(nullptr) nullptr_t
Definition: mn_def.hpp:45
byte & operator>>=(byte &b, IntegerType shift) noexcept
Definition: mn_def.hpp:98
const size_t default_alignment
Definition: mn_def.hpp:54
byte operator&=(byte &lhr, const byte rhr) noexcept
Definition: mn_def.hpp:141
constexpr bool operator>(const byte l, const byte r) noexcept
Definition: mn_def.hpp:128
Definition: mn_def.hpp:73