libzypp 17.37.17
zypp::bit Namespace Reference

Namespaces

namespace  bit_detail

Classes

class  BitField
 An integral type used as BitField. More...
struct  Mask
 A bitmaks of _size 1-bits starting at bit _begin. More...
struct  MaxBits
 Number of bits available in TInt. More...
struct  Range
 Range of bits starting at bit _begin with length _size. More...
struct  Range< TInt, _begin, 0 >
 Range specialisation for (illegal) zero _size. More...
struct  RangeBit
 A single 1-bit within a Range. More...
struct  RangeValue
 A value with in a Range. More...

Functions

template<class TInt>
std::string asString (TInt val, char zero='0', char one='1')
 For printing bits.
template<class TInt>
std::ostream & operator<< (std::ostream &str, const BitField< TInt > &obj)
 Stream output.
template<class TInt>
bool operator== (const BitField< TInt > &lhs, const BitField< TInt > &rhs)
template<class TInt>
bool operator!= (const BitField< TInt > &lhs, const BitField< TInt > &rhs)
template<class TInt>
BitField< TInt > operator& (const BitField< TInt > &lhs, const BitField< TInt > &rhs)
template<class TInt>
BitField< TInt > operator| (const BitField< TInt > &lhs, const BitField< TInt > &rhs)
template<class TInt>
BitField< TInt > operator^ (const BitField< TInt > &lhs, const BitField< TInt > &rhs)
template<class TInt>
BitField< TInt > operator<< (const BitField< TInt > &lhs, unsigned num)
template<class TInt>
BitField< TInt > operator>> (const BitField< TInt > &lhs, unsigned num)

Detailed Description

Todo
Use boost::mpl library to assert constraints at compiletime! There various like (TInt is an integral type) (begin+size < maxbits) or ( field dependent constants must be within the range defined by size ).

Function Documentation

◆ asString()

template<class TInt>
std::string zypp::bit::asString ( TInt val,
char zero = '0',
char one = '1' )
inline

For printing bits.

Definition at line 57 of file Bit.h.