 |
SWC-DB
v0.5.11 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
|
Go to the documentation of this file.
6 #ifndef swcdb_core_BitFieldInt_h
7 #define swcdb_core_BitFieldInt_h
9 namespace SWC {
namespace Core {
13 template <
class T, u
int8_t SZ>
21 template<
typename FROM_T>
26 operator bool() const noexcept {
55 BitFieldInt<T, SZ>&
operator+=(
const BitFieldInt<T, SZ>& v) noexcept {
60 BitFieldInt<T, SZ>&
operator-=(
const BitFieldInt<T, SZ>& v) noexcept {
70 BitFieldInt<T, SZ>&
operator*=(
const BitFieldInt<T, SZ>& v) noexcept {
91 template<
typename IN_T>
97 template<
typename IN_T>
103 template<
typename IN_T>
109 template<
typename IN_T>
115 template<
typename IN_T>
121 template<
typename IN_T>
127 template<
typename IN_T>
133 template<
typename IN_T>
139 template<
typename IN_T>
146 template<
typename TO_T>
148 operator TO_T() const noexcept {
151 template<
class T2, u
int8_t SZ2>
254 template<
typename T, u
int8_t SZ>
261 template<
class T, u
int8_t SZ>
269 #define SWC_BITFIELD_op_T(_op_) \
270 template<class T, uint8_t SZ, typename IN_T> \
271 extern constexpr SWC_CAN_INLINE \
273 operator _op_ (const BitFieldInt<T, SZ>& v1, \
274 const IN_T& v2) noexcept { \
275 return BitFieldInt<T, SZ>(v1.data _op_ v2);\
288 #define SWC_T_op_BITFIELD(_op_) \
289 template<typename IN_T, class T, uint8_t SZ> \
290 extern constexpr SWC_CAN_INLINE \
292 operator _op_ (const IN_T& v1, \
293 const BitFieldInt<T, SZ>& v2) noexcept { \
294 return v1 _op_ v2.data;\
309 #define SWC_BITFIELD1_op_BITFIELD2(_op_) \
310 template<class T1, uint8_t SZ1, class T2, uint8_t SZ2> \
311 extern constexpr SWC_CAN_INLINE \
312 BitFieldInt<T1, SZ1> \
313 operator _op_ (const BitFieldInt<T1, SZ1>& v1, \
314 const BitFieldInt<T2, SZ2>& v2) noexcept { \
315 return BitFieldInt<T1, SZ1>(v1.data _op_ v2.data); \
330 #define SWC_T_vs_BITFIELD(_vs_) \
331 template<typename IN_T, class T, uint8_t SZ> \
332 extern constexpr SWC_CAN_INLINE \
333 bool operator _vs_ (const IN_T& v1, const BitFieldInt<T, SZ>& v2) noexcept { \
334 return v1 _vs_ v2.data; \
346 #define SWC_BITFIELD_vs_T(_vs_) \
347 template<class T, uint8_t SZ, typename IN_T> \
348 extern constexpr SWC_CAN_INLINE \
349 bool operator _vs_ (const BitFieldInt<T, SZ>& v1, const IN_T& v2) noexcept { \
350 return v1.data _vs_ v2; \
362 #define SWC_BITFIELD1_vs_BITFIELD2(_vs_) \
363 template<class T1, uint8_t SZ1, class T2, uint8_t SZ2> \
364 extern constexpr SWC_CAN_INLINE \
365 bool operator _vs_ (const BitFieldInt<T1, SZ1>& v1, \
366 const BitFieldInt<T2, SZ2>& v2) noexcept { \
367 return v1.data _vs_ v2.data; \
438 #endif // swcdb_core_BitFieldInt_h
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator|=(const BitFieldInt< T, SZ > &v) noexcept
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator--() noexcept
constexpr const int40_t INT40_MAX
constexpr const uint56_t UINT56_MIN
constexpr const int56_t INT56_MAX
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator|=(const IN_T &v) noexcept
constexpr SWC_CAN_INLINE BitFieldInt(const FROM_T &v) noexcept
constexpr const int56_t INT56_MIN
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > operator--(int) noexcept
constexpr const uint56_t UINT56_MAX
#define SWC_BITFIELD1_vs_BITFIELD2(_vs_)
constexpr const uint24_t UINT24_MAX
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator-=(const IN_T &v) noexcept
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator^=(const IN_T &v) noexcept
constexpr const uint40_t UINT40_MAX
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator+=(const BitFieldInt< T, SZ > &v) noexcept
constexpr const uint48_t UINT48_MIN
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator+=(const IN_T &v) noexcept
constexpr const uint48_t UINT48_MAX
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator<<=(const BitFieldInt< T, SZ > &v) noexcept
constexpr const int48_t INT48_MAX
The SWC-DB C++ namespace 'SWC'.
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator&=(const IN_T &v) noexcept
constexpr const int40_t INT40_MIN
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator-=(const BitFieldInt< T, SZ > &v) noexcept
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator/=(const IN_T &v) noexcept
SWC_CAN_INLINE std::ostream & operator<<(std::ostream &out, const AtomicBase< T, OrderT > &v)
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > operator++(int) noexcept
#define SWC_BITFIELD_vs_T(_vs_)
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator/=(const BitFieldInt< T, SZ > &v) noexcept
#define SWC_T_op_BITFIELD(_op_)
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator++() noexcept
constexpr const uint24_t UINT24_MIN
constexpr SWC_CAN_INLINE BitFieldInt() noexcept
constexpr const uint40_t UINT40_MIN
constexpr const int48_t INT48_MIN
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator>>=(const BitFieldInt< T, SZ > &v) noexcept
constexpr const int24_t INT24_MIN
#define SWC_T_vs_BITFIELD(_vs_)
struct SWC::Core::BitFieldInt __attribute__((packed))
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator*=(const BitFieldInt< T, SZ > &v) noexcept
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator>>=(const IN_T &v) noexcept
#define SWC_BITFIELD1_op_BITFIELD2(_op_)
SWC_CAN_INLINE std::string to_string(const BitFieldInt< T, SZ > &v)
constexpr const int24_t INT24_MAX
SWC_BITFIELD_op_T(+) SWC_BITFIELD_op_T(-) SWC_BITFIELD_op_T(/) SWC_BITFIELD_op_T(*) SWC_BITFIELD_op_T(<<) SWC_BITFIELD_op_T(>>) SWC_BITFIELD_op_T(&) SWC_BITFIELD_op_T(|) SWC_BITFIELD_op_T(^) SWC_T_op_BITFIELD(+) SWC_T_op_BITFIELD(-) SWC_T_op_BITFIELD(/) SWC_T_op_BITFIELD(*) SWC_T_op_BITFIELD(<<) SWC_T_op_BITFIELD(>>) SWC_T_op_BITFIELD(&) SWC_T_op_BITFIELD(|) SWC_T_op_BITFIELD(^) SWC_BITFIELD1_op_BITFIELD2(+) SWC_BITFIELD1_op_BITFIELD2(-) SWC_BITFIELD1_op_BITFIELD2(/) SWC_BITFIELD1_op_BITFIELD2(*) SWC_BITFIELD1_op_BITFIELD2(<<) SWC_BITFIELD1_op_BITFIELD2(>>) SWC_BITFIELD1_op_BITFIELD2(&) SWC_BITFIELD1_op_BITFIELD2(|) SWC_BITFIELD1_op_BITFIELD2(^) SWC_T_vs_BITFIELD(
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator*=(const IN_T &v) noexcept