SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
BitFieldInt.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SWC::Core::BitFieldInt< T, SZ >
 

Namespaces

 SWC
 The SWC-DB C++ namespace 'SWC'.
 
 SWC::Core
 The SWC-DB Core Components C++ namespace 'SWC::Core'.
 

Macros

#define SWC_BITFIELD_op_T(_op_)
 
#define SWC_T_op_BITFIELD(_op_)
 
#define SWC_BITFIELD1_op_BITFIELD2(_op_)
 
#define SWC_T_vs_BITFIELD(_vs_)
 
#define SWC_BITFIELD_vs_T(_vs_)
 
#define SWC_BITFIELD1_vs_BITFIELD2(_vs_)
 

Typedefs

typedef BitFieldInt< int32_t, 24 > SWC::Core::int24_t
 
typedef BitFieldInt< uint64_t, 40 > SWC::Core::uint40_t
 
typedef BitFieldInt< int64_t, 40 > SWC::Core::int40_t
 
typedef BitFieldInt< uint64_t, 48 > SWC::Core::uint48_t
 
typedef BitFieldInt< int64_t, 48 > SWC::Core::int48_t
 
typedef BitFieldInt< uint64_t, 56 > SWC::Core::uint56_t
 
typedef BitFieldInt< int64_t, 56 > SWC::Core::int56_t
 
typedef Core::uint24_t SWC::uint24_t
 
typedef Core::int24_t SWC::int24_t
 
typedef Core::uint40_t SWC::uint40_t
 
typedef Core::int40_t SWC::int40_t
 
typedef Core::uint48_t SWC::uint48_t
 
typedef Core::int48_t SWC::int48_t
 
typedef Core::uint56_t SWC::uint56_t
 
typedef Core::int56_t SWC::int56_t
 

Functions

template<class T , uint8_t SZ>
struct SWC::Core::BitFieldInt SWC::Core::__attribute__ ((packed))
 
constexpr SWC_CAN_INLINE BitFieldInt () noexcept
 
template<typename FROM_T >
constexpr SWC_CAN_INLINE BitFieldInt (const FROM_T &v) noexcept
 
constexpr SWC_CAN_INLINE operator bool () const noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator++ () noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > operator++ (int) noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator-- () noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > operator-- (int) noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator+= (const BitFieldInt< T, SZ > &v) noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator-= (const BitFieldInt< T, SZ > &v) noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator/= (const BitFieldInt< T, SZ > &v) noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator*= (const BitFieldInt< T, SZ > &v) noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator>>= (const BitFieldInt< T, SZ > &v) noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator<<= (const BitFieldInt< T, SZ > &v) noexcept
 
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator|= (const BitFieldInt< T, SZ > &v) noexcept
 
template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator+= (const IN_T &v) noexcept
 
template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator-= (const IN_T &v) noexcept
 
template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator/= (const IN_T &v) noexcept
 
template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator*= (const IN_T &v) noexcept
 
template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator<<= (const IN_T &v) noexcept
 
template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator>>= (const IN_T &v) noexcept
 
template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator|= (const IN_T &v) noexcept
 
template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator&= (const IN_T &v) noexcept
 
template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt< T, SZ > & operator^= (const IN_T &v) noexcept
 
template<typename TO_T >
constexpr SWC_CAN_INLINE operator TO_T () const noexcept
 
template<class T2 , uint8_t SZ2>
constexpr SWC_CAN_INLINE operator BitFieldInt< T2, SZ2 > () const noexcept
 
template<typename T , uint8_t SZ>
SWC_CAN_INLINE std::ostream & SWC::Core::operator<< (std::ostream &out, const BitFieldInt< T, SZ > &v)
 
template<class T , uint8_t SZ>
SWC_CAN_INLINE std::string SWC::Core::to_string (const BitFieldInt< T, SZ > &v)
 
 SWC::Core::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(
 

Variables

data
 
 SWC::Core::uint24_t
 
constexpr const uint24_t SWC::UINT24_MAX = uint24_t(UINT32_MAX >> 8)
 
constexpr const uint24_t SWC::UINT24_MIN = UINT24_MAX + 1
 
constexpr const int24_t SWC::INT24_MAX = int24_t(UINT24_MAX / 2)
 
constexpr const int24_t SWC::INT24_MIN = INT24_MAX + 1
 
constexpr const uint40_t SWC::UINT40_MAX = uint40_t(UINT64_MAX >> 24)
 
constexpr const uint40_t SWC::UINT40_MIN = UINT40_MAX + 1
 
constexpr const int40_t SWC::INT40_MAX = int40_t(UINT40_MAX / 2)
 
constexpr const int40_t SWC::INT40_MIN = INT40_MAX + 1
 
constexpr const uint48_t SWC::UINT48_MAX = uint48_t(UINT64_MAX >> 16)
 
constexpr const uint48_t SWC::UINT48_MIN = UINT48_MAX + 1
 
constexpr const int48_t SWC::INT48_MAX = int48_t(UINT48_MAX / 2)
 
constexpr const int48_t SWC::INT48_MIN = INT48_MAX + 1
 
constexpr const uint56_t SWC::UINT56_MAX = uint56_t(UINT64_MAX >> 8)
 
constexpr const uint56_t SWC::UINT56_MIN = UINT56_MAX + 1
 
constexpr const int56_t SWC::INT56_MAX = int56_t(UINT56_MAX / 2)
 
constexpr const int56_t SWC::INT56_MIN = INT56_MAX + 1
 

Macro Definition Documentation

◆ SWC_BITFIELD1_op_BITFIELD2

#define SWC_BITFIELD1_op_BITFIELD2 (   _op_)
Value:
template<class T1, uint8_t SZ1, class T2, uint8_t SZ2> \
extern constexpr SWC_CAN_INLINE \
BitFieldInt<T1, SZ1> \
operator _op_ (const BitFieldInt<T1, SZ1>& v1, \
const BitFieldInt<T2, SZ2>& v2) noexcept { \
return BitFieldInt<T1, SZ1>(v1.data _op_ v2.data); \
}

◆ SWC_BITFIELD1_vs_BITFIELD2

#define SWC_BITFIELD1_vs_BITFIELD2 (   _vs_)
Value:
template<class T1, uint8_t SZ1, class T2, uint8_t SZ2> \
extern constexpr SWC_CAN_INLINE \
bool operator _vs_ (const BitFieldInt<T1, SZ1>& v1, \
const BitFieldInt<T2, SZ2>& v2) noexcept { \
return v1.data _vs_ v2.data; \
}

◆ SWC_BITFIELD_op_T

#define SWC_BITFIELD_op_T (   _op_)
Value:
template<class T, uint8_t SZ, typename IN_T> \
extern constexpr SWC_CAN_INLINE \
BitFieldInt<T, SZ> \
operator _op_ (const BitFieldInt<T, SZ>& v1, \
const IN_T& v2) noexcept { \
return BitFieldInt<T, SZ>(v1.data _op_ v2);\
}

Definition at line 269 of file BitFieldInt.h.

◆ SWC_BITFIELD_vs_T

#define SWC_BITFIELD_vs_T (   _vs_)
Value:
template<class T, uint8_t SZ, typename IN_T> \
extern constexpr SWC_CAN_INLINE \
bool operator _vs_ (const BitFieldInt<T, SZ>& v1, const IN_T& v2) noexcept { \
return v1.data _vs_ v2; \
}

◆ SWC_T_op_BITFIELD

#define SWC_T_op_BITFIELD (   _op_)
Value:
template<typename IN_T, class T, uint8_t SZ> \
extern constexpr SWC_CAN_INLINE \
BitFieldInt<T, SZ> \
operator _op_ (const IN_T& v1, \
const BitFieldInt<T, SZ>& v2) noexcept { \
return v1 _op_ v2.data;\
}

◆ SWC_T_vs_BITFIELD

#define SWC_T_vs_BITFIELD (   _vs_)
Value:
template<typename IN_T, class T, uint8_t SZ> \
extern constexpr SWC_CAN_INLINE \
bool operator _vs_ (const IN_T& v1, const BitFieldInt<T, SZ>& v2) noexcept { \
return v1 _vs_ v2.data; \
}

Function Documentation

◆ BitFieldInt() [1/2]

constexpr SWC_CAN_INLINE __attribute__::BitFieldInt ( )
constexprnoexcept

Definition at line 4 of file BitFieldInt.h.

◆ BitFieldInt() [2/2]

template<typename FROM_T >
constexpr SWC_CAN_INLINE __attribute__::BitFieldInt ( const FROM_T &  v)
constexprnoexcept

Definition at line 8 of file BitFieldInt.h.

◆ operator BitFieldInt< T2, SZ2 >()

template<class T2 , uint8_t SZ2>
constexpr SWC_CAN_INLINE __attribute__::operator BitFieldInt< T2, SZ2 > ( ) const
constexprnoexcept

Definition at line 138 of file BitFieldInt.h.

◆ operator bool()

constexpr SWC_CAN_INLINE __attribute__::operator bool ( ) const
constexprnoexcept

Definition at line 11 of file BitFieldInt.h.

◆ operator TO_T()

template<typename TO_T >
constexpr SWC_CAN_INLINE __attribute__::operator TO_T ( ) const
constexprnoexcept

Definition at line 133 of file BitFieldInt.h.

◆ operator&=()

template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator&= ( const IN_T &  v)
constexprnoexcept

Definition at line 120 of file BitFieldInt.h.

◆ operator*=() [1/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator*= ( const BitFieldInt< T, SZ > &  v)
constexprnoexcept

Definition at line 55 of file BitFieldInt.h.

References SWC::Core::BitFieldInt< T, SZ >::data.

◆ operator*=() [2/2]

template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator*= ( const IN_T &  v)
constexprnoexcept

Definition at line 96 of file BitFieldInt.h.

◆ operator++() [1/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator++ ( )
constexprnoexcept

Definition at line 16 of file BitFieldInt.h.

◆ operator++() [2/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ> __attribute__::operator++ ( int  )
constexprnoexcept

Definition at line 21 of file BitFieldInt.h.

◆ operator+=() [1/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator+= ( const BitFieldInt< T, SZ > &  v)
constexprnoexcept

Definition at line 40 of file BitFieldInt.h.

◆ operator+=() [2/2]

template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator+= ( const IN_T &  v)
constexprnoexcept

Definition at line 78 of file BitFieldInt.h.

◆ operator--() [1/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator-- ( )
constexprnoexcept

Definition at line 27 of file BitFieldInt.h.

◆ operator--() [2/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ> __attribute__::operator-- ( int  )
constexprnoexcept

Definition at line 32 of file BitFieldInt.h.

◆ operator-=() [1/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator-= ( const BitFieldInt< T, SZ > &  v)
constexprnoexcept

Definition at line 45 of file BitFieldInt.h.

◆ operator-=() [2/2]

template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator-= ( const IN_T &  v)
constexprnoexcept

Definition at line 84 of file BitFieldInt.h.

◆ operator/=() [1/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator/= ( const BitFieldInt< T, SZ > &  v)
constexprnoexcept

Definition at line 50 of file BitFieldInt.h.

◆ operator/=() [2/2]

template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator/= ( const IN_T &  v)
constexprnoexcept

Definition at line 90 of file BitFieldInt.h.

◆ operator<<=() [1/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator<<= ( const BitFieldInt< T, SZ > &  v)
constexprnoexcept

Definition at line 64 of file BitFieldInt.h.

◆ operator<<=() [2/2]

template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator<<= ( const IN_T &  v)
constexprnoexcept

Definition at line 101 of file BitFieldInt.h.

◆ operator>>=() [1/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator>>= ( const BitFieldInt< T, SZ > &  v)
constexprnoexcept

Definition at line 60 of file BitFieldInt.h.

References SWC::Core::BitFieldInt< T, SZ >::data.

◆ operator>>=() [2/2]

template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator>>= ( const IN_T &  v)
constexprnoexcept

Definition at line 108 of file BitFieldInt.h.

◆ operator^=()

template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator^= ( const IN_T &  v)
constexprnoexcept

Definition at line 126 of file BitFieldInt.h.

◆ operator|=() [1/2]

constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator|= ( const BitFieldInt< T, SZ > &  v)
constexprnoexcept

Definition at line 70 of file BitFieldInt.h.

References SWC::Core::BitFieldInt< T, SZ >::data.

◆ operator|=() [2/2]

template<typename IN_T >
constexpr SWC_CAN_INLINE BitFieldInt<T, SZ>& __attribute__::operator|= ( const IN_T &  v)
constexprnoexcept

Definition at line 114 of file BitFieldInt.h.

Variable Documentation

◆ data