osl::misc::GeneralMask< Integer > Class Template Reference

`#include <mask.h>`

## Public Member Functions

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

## Constructor & Destructor Documentation

## GeneralMask() [1/2]

template<class Integer>

osl::misc::GeneralMask< Integer >::GeneralMask | ( | Integer | value | ) |

inline private

Definition at line 216 of file mask.h.

## GeneralMask() [2/2]

template<class Integer>

osl::misc::GeneralMask< Integer >::GeneralMask | ( |  | ) |

inline

Definition at line 218 of file mask.h.

Referenced by osl::misc::GeneralMask< unsigned long long >::makeDirect(), and osl::misc::GeneralMask< unsigned long long >::operator~().

## Member Function Documentation

## any()

template<class Integer>

bool osl::misc::GeneralMask< Integer >::any | ( |  | ) | const

inline

Definition at line 298 of file mask.h.

Referenced by osl::checkmate::OracleAdjust::attack(), osl::effect::NumSimpleEffectTable::doBlockAt(), osl::checkmate::CheckmateIfCapture::effectiveAttackCandidate0(), osl::move_probability::BlockLong::findAll(), osl::move_probability::StateInfo::findCheckmateDefender(), osl::NumEffectState::findThreatenedPiece(), osl::NumEffectState::forEachEffect(), osl::NumEffectState::forEachOnBoard(), osl::NumEffectState::forEachOnBoardPtypeStrict(), osl::NumEffectState::hasEffectByPtype(), osl::NumEffectState::hasEffectByPtypeStrict(), osl::NumEffectState::hasEffectInDirection(), osl::effect::NumBitmapEffect::hasLong(), osl::NumEffectState::hasLongEffectAt(), osl::rating::ImmediateAddSupport::index(), osl::rating::Threatmate::isCandidate(), osl::move_probability::BreakThreatmate::isDefendingKing8(), osl::move_probability::MoveFromOpposingSliders::longPtype(), osl::checkmate::King8Info::make(), osl::move_probability::PromotionBySacrifice::match(), osl::NumEffectState::prologueDrop(), osl::ki2::show(), and osl::progress::ml::NewProgress::updatePawnFacing().

## bsf()

template<class Integer>

int osl::misc::GeneralMask< Integer >::bsf | ( |  | ) | const

inline

Definition at line 257 of file mask.h.

Referenced by osl::NumEffectState::hasEffectAt(), osl::NumEffectState::prologueDrop(), and osl::NumEffectState::selectCheapPiece().

## bsr()

template<class Integer>

int osl::misc::GeneralMask< Integer >::bsr | ( |  | ) | const

inline

Definition at line 258 of file mask.h.

Referenced by osl::NumEffectState::findThreatenedPiece().

## countBit()

template<class Integer>

int osl::misc::GeneralMask< Integer >::countBit | ( |  | ) | const

inline

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

Definition at line 290 of file mask.h.

Referenced by osl::ki2::show().

## countBit2()

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 278 of file mask.h.

## hasMultipleBit()

template<class Integer>

bool osl::misc::GeneralMask< Integer >::hasMultipleBit | ( |  | ) | const

inline

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

Parameters

  mask | - 対象とするデータ(non-zero)

Returns
  - 複数ビットがセットされているか？

Definition at line 272 of file mask.h.

Referenced by osl::NumEffectState::hasEffectAt().

## lowestBit()

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 296 of file mask.h.

Referenced by osl::NumEffectState::prologueDrop().

## makeDirect()

template<class Integer>

const GeneralMask osl::misc::GeneralMask< Integer >::makeDirect | ( | Integer | value | ) |

inline static

Definition at line 219 of file mask.h.

## none()

template<class Integer>

bool osl::misc::GeneralMask< Integer >::none | ( |  | ) | const

inline

Definition at line 297 of file mask.h.

Referenced by osl::misc::GeneralMask< unsigned long long >::any(), osl::NumEffectState::findAttackAt(), osl::NumEffectState::findAttackAtStrict(), osl::NumEffectState::hasEffectAt(), osl::NumEffectState::hasEffectAt(), and osl::NumEffectState::hasEffectAt().

## operator&=()

template<class Integer>

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

inline

Definition at line 220 of file mask.h.

## operator+=()

template<class Integer>

GeneralMask & osl::misc::GeneralMask< Integer >::operator+= | ( | const GeneralMask< Integer > & | r | ) |

inline

Definition at line 240 of file mask.h.

## operator-=()

template<class Integer>

GeneralMask & osl::misc::GeneralMask< Integer >::operator-= | ( | const GeneralMask< Integer > & | r | ) |

inline

Definition at line 235 of file mask.h.

## operator<<=()

template<class Integer>

GeneralMask & osl::misc::GeneralMask< Integer >::operator<<= | ( | int | shift | ) |

inline

Definition at line 245 of file mask.h.

## operator>>=()

template<class Integer>

GeneralMask & osl::misc::GeneralMask< Integer >::operator>>= | ( | int | shift | ) |

inline

Definition at line 250 of file mask.h.

## operator^=()

template<class Integer>

GeneralMask & osl::misc::GeneralMask< Integer >::operator^= | ( | const GeneralMask< Integer > & | r | ) |

inline

Definition at line 230 of file mask.h.

## operator|=()

template<class Integer>

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

inline

Definition at line 225 of file mask.h.

## operator~()

template<class Integer>

const GeneralMask osl::misc::GeneralMask< Integer >::operator~ | ( |  | ) | const

inline

Definition at line 255 of file mask.h.

## takeOneBit()

template<class Integer>

int osl::misc::GeneralMask< Integer >::takeOneBit | ( |  | ) |

inline

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

Parameters

  mask | - 対象とするデータ(non-zero)

Returns
  - どのビットか

Definition at line 265 of file mask.h.

Referenced by osl::checkmate::OracleAdjust::attack(), osl::effect::NumSimpleEffectTable::doBlockAt(), osl::move_probability::BlockLong::findAll(), osl::NumEffectState::findAttackAt(), osl::NumEffectState::findAttackAtStrict(), osl::move_probability::StateInfo::findCheckmateDefender(), osl::NumEffectState::forEachEffect(), osl::NumEffectState::forEachOnBoard(), osl::NumEffectState::forEachOnBoardPtypeStrict(), osl::NumEffectState::hasEffectInDirection(), osl::rating::ImmediateAddSupport::index(), osl::move_probability::BreakThreatmate::isDefendingKing8(), osl::move_probability::MoveFromOpposingSliders::longPtype(), osl::checkmate::King8Info::make(), osl::move_probability::PromotionBySacrifice::match(), osl::ki2::show(), and osl::progress::ml::NewProgress::updatePawnFacing().

## value()

template<class Integer>

Integer osl::misc::GeneralMask< Integer >::value | ( |  | ) | const

inline

Definition at line 299 of file mask.h.

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

## Member Data Documentation

## mask

template<class Integer>

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

private

Definition at line 214 of file mask.h.

Referenced by osl::misc::GeneralMask< unsigned long long >::operator&=(), osl::misc::GeneralMask< unsigned long long >::operator+=(), osl::misc::GeneralMask< unsigned long long >::operator-=(), osl::misc::GeneralMask< unsigned long long >::operator^=(), and osl::misc::GeneralMask< unsigned long long >::operator|=().

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

- mask.h