All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
osl::misc::GeneralMask< Integer > Class Template Reference

#include <mask.h>

Public Member Functions

 GeneralMask ()
 
GeneralMaskoperator&= (const GeneralMask &r)
 
GeneralMaskoperator|= (const GeneralMask &r)
 
GeneralMaskoperator^= (const GeneralMask &r)
 
GeneralMaskoperator-= (const GeneralMask &r)
 
GeneralMaskoperator+= (const GeneralMask &r)
 
GeneralMaskoperator<<= (int shift)
 
GeneralMaskoperator>>= (int shift)
 
const GeneralMask operator~ () const
 
int bsf () const
 
int bsr () const
 
int takeOneBit ()
 non-zeroのmaskのsetされているビットをLSBから探し,その番号を返す 副作用としてmaskの対応するビットをクリアする More...
 
bool hasMultipleBit () const
 non-zeroのmaskが複数ビットセットされているかどうかを返す. More...
 
int countBit2 () const
 non-zeroのmaskにセットされているビットの数を2まで数える. More...
 
int countBit () const
 mask にセットされているビットの数を数える. あまり速くない. More...
 
GeneralMask lowestBit () const
 non-zeroのmaskのsetされているビットをLSBから探し,そのビットだけがsetされたmaskを返す. More...
 
bool none () const
 
bool any () const
 
Integer value () const
 

Static Public Member Functions

static const GeneralMask makeDirect (Integer value)
 

Private Member Functions

 GeneralMask (Integer value)
 

Private Attributes

Integer mask
 

Detailed Description

template<class Integer>
class osl::misc::GeneralMask< Integer >

Definition at line 14 of file mask.h.

Constructor & Destructor Documentation

template<class Integer>
osl::misc::GeneralMask< Integer >::GeneralMask ( Integer  value)
inlineprivate

Definition at line 18 of file mask.h.

template<class Integer>
osl::misc::GeneralMask< Integer >::GeneralMask ( )
inline

Member Function Documentation

template<class Integer>
bool osl::misc::GeneralMask< Integer >::any ( ) const
inline

Definition at line 100 of file mask.h.

References osl::misc::GeneralMask< Integer >::none().

template<class Integer>
int osl::misc::GeneralMask< Integer >::bsf ( ) const
inline

Definition at line 59 of file mask.h.

References osl::misc::BitOp::bsf(), and osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
int osl::misc::GeneralMask< Integer >::bsr ( ) const
inline

Definition at line 60 of file mask.h.

References osl::misc::BitOp::bsr(), and osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
int osl::misc::GeneralMask< Integer >::countBit ( ) const
inline

mask にセットされているビットの数を数える. あまり速くない.

Definition at line 92 of file mask.h.

References osl::misc::BitOp::countBit(), and osl::misc::GeneralMask< Integer >::mask.

Referenced by osl::container::PieceMask64::countBit().

template<class Integer>
int osl::misc::GeneralMask< Integer >::countBit2 ( ) const
inline

non-zeroのmaskにセットされているビットの数を2まで数える.

Parameters
mask- 対象とするデータ(non-zero)
Returns
1,2 (2の場合は2以上)

Definition at line 80 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask.

Referenced by osl::container::PieceMask64::countBit2().

template<class Integer>
bool osl::misc::GeneralMask< Integer >::hasMultipleBit ( ) const
inline

non-zeroのmaskが複数ビットセットされているかどうかを返す.

Parameters
mask- 対象とするデータ(non-zero)
Returns
- 複数ビットがセットされているか?

Definition at line 74 of file mask.h.

References osl::misc::BitOp::hasMultipleBit(), and osl::misc::GeneralMask< Integer >::mask.

Referenced by osl::container::PieceMask64::hasMultipleBit().

template<class Integer>
GeneralMask osl::misc::GeneralMask< Integer >::lowestBit ( ) const
inline

non-zeroのmaskのsetされているビットをLSBから探し,そのビットだけがsetされたmaskを返す.

Parameters
mask- 対象とするデータ(non-zero)
Returns
- そのビットだけがsetされたmask

Definition at line 98 of file mask.h.

References osl::misc::BitOp::lowestBit(), and osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
static const GeneralMask osl::misc::GeneralMask< Integer >::makeDirect ( Integer  value)
inlinestatic
template<class Integer>
bool osl::misc::GeneralMask< Integer >::none ( ) const
inline
template<class Integer>
GeneralMask& osl::misc::GeneralMask< Integer >::operator&= ( const GeneralMask< Integer > &  r)
inline

Definition at line 22 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
GeneralMask& osl::misc::GeneralMask< Integer >::operator+= ( const GeneralMask< Integer > &  r)
inline

Definition at line 42 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
GeneralMask& osl::misc::GeneralMask< Integer >::operator-= ( const GeneralMask< Integer > &  r)
inline

Definition at line 37 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
GeneralMask& osl::misc::GeneralMask< Integer >::operator<<= ( int  shift)
inline

Definition at line 47 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
GeneralMask& osl::misc::GeneralMask< Integer >::operator>>= ( int  shift)
inline

Definition at line 52 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
GeneralMask& osl::misc::GeneralMask< Integer >::operator^= ( const GeneralMask< Integer > &  r)
inline

Definition at line 32 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
GeneralMask& osl::misc::GeneralMask< Integer >::operator|= ( const GeneralMask< Integer > &  r)
inline

Definition at line 27 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask.

template<class Integer>
const GeneralMask osl::misc::GeneralMask< Integer >::operator~ ( ) const
inline
template<class Integer>
int osl::misc::GeneralMask< Integer >::takeOneBit ( )
inline

non-zeroのmaskのsetされているビットをLSBから探し,その番号を返す 副作用としてmaskの対応するビットをクリアする

Parameters
mask- 対象とするデータ(non-zero)
Returns
- どのビットか

Definition at line 67 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask, and osl::misc::BitOp::takeOneBit().

Referenced by osl::container::PieceMask64::takeOneBit().

template<class Integer>
Integer osl::misc::GeneralMask< Integer >::value ( ) const
inline

Definition at line 101 of file mask.h.

References osl::misc::GeneralMask< Integer >::mask.

Referenced by osl::misc::operator<(), and osl::misc::operator==().

Member Data Documentation

template<class Integer>
Integer osl::misc::GeneralMask< Integer >::mask
private

The documentation for this class was generated from the following file: