クラス テンプレート osl::hash::HashKeyMix< hash1_t, hash2_t >

2つのhashKey(たとえばHashKey32とHashKey64)を保持して, 常に同じ結果(片方で一致して片方で一致しないことがない)であることを assertで確認しながら動くHashKey [詳細]

#include <hashKeyMix.h>

すべてのメンバ一覧

Public メソッド

 HashKeyMix ()
 HashKeyMix (unsigned int v0, unsigned int v1, unsigned int v2, unsigned int v3, unsigned int v4, unsigned int v5)
bool isSameBoard (const HashKeyMix &key) const
HashKeyMixoperator+= (const HashKeyMix &r)
HashKeyMixoperator-= (const HashKeyMix &r)
PieceStand blackStand () const
void changeTurn ()
void setPlayer (Player p)
bool isPlayerOfTurn (Player p) const
size_t size () const
size_t value (unsigned int i) const
void setRandom ()

Private メソッド

hash1_t const & getHash1 () const
hash1_t & getHash1 ()
hash2_t const & getHash2 () const
hash2_t & getHash2 ()

Private 変数

hash1_t hash1
hash2_t hash2

フレンド

bool operator== (HashKeyMix const &l, HashKeyMix const &r)
bool operator< (HashKeyMix const &l, HashKeyMix const &r)
 ここの順序はset等に入れるためだけに使うので,完全に一致する必要はない
bool operator!= (const HashKeyMix &h1, const HashKeyMix &h2)

説明

template<typename hash1_t, typename hash2_t>
class osl::hash::HashKeyMix< hash1_t, hash2_t >

2つのhashKey(たとえばHashKey32とHashKey64)を保持して, 常に同じ結果(片方で一致して片方で一致しないことがない)であることを assertで確認しながら動くHashKey

hashKeyMix.h17 行で定義されています。


コンストラクタとデストラクタ

template<typename hash1_t , typename hash2_t >
osl::hash::HashKeyMix< hash1_t, hash2_t >::HashKeyMix (  )  [inline]

hashKeyMix.h26 行で定義されています。

template<typename hash1_t , typename hash2_t >
osl::hash::HashKeyMix< hash1_t, hash2_t >::HashKeyMix ( unsigned int  v0,
unsigned int  v1,
unsigned int  v2,
unsigned int  v3,
unsigned int  v4,
unsigned int  v5 
) [inline]

hashKeyMix.h28 行で定義されています。


関数

template<typename hash1_t , typename hash2_t >
PieceStand osl::hash::HashKeyMix< hash1_t, hash2_t >::blackStand (  )  const [inline]
template<typename hash1_t , typename hash2_t >
void osl::hash::HashKeyMix< hash1_t, hash2_t >::changeTurn (  )  [inline]
template<typename hash1_t , typename hash2_t >
hash1_t& osl::hash::HashKeyMix< hash1_t, hash2_t >::getHash1 (  )  [inline, private]

hashKeyMix.h22 行で定義されています。

参照先 osl::hash::HashKeyMix< hash1_t, hash2_t >::hash1.

template<typename hash1_t , typename hash2_t >
hash1_t const& osl::hash::HashKeyMix< hash1_t, hash2_t >::getHash1 (  )  const [inline, private]
template<typename hash1_t , typename hash2_t >
hash2_t& osl::hash::HashKeyMix< hash1_t, hash2_t >::getHash2 (  )  [inline, private]

hashKeyMix.h24 行で定義されています。

参照先 osl::hash::HashKeyMix< hash1_t, hash2_t >::hash2.

template<typename hash1_t , typename hash2_t >
hash2_t const& osl::hash::HashKeyMix< hash1_t, hash2_t >::getHash2 (  )  const [inline, private]
template<typename hash1_t , typename hash2_t >
bool osl::hash::HashKeyMix< hash1_t, hash2_t >::isPlayerOfTurn ( Player  p  )  const [inline]
template<typename hash1_t , typename hash2_t >
bool osl::hash::HashKeyMix< hash1_t, hash2_t >::isSameBoard ( const HashKeyMix< hash1_t, hash2_t > &  key  )  const [inline]
template<typename hash1_t , typename hash2_t >
HashKeyMix& osl::hash::HashKeyMix< hash1_t, hash2_t >::operator+= ( const HashKeyMix< hash1_t, hash2_t > &  r  )  [inline]
template<typename hash1_t , typename hash2_t >
HashKeyMix& osl::hash::HashKeyMix< hash1_t, hash2_t >::operator-= ( const HashKeyMix< hash1_t, hash2_t > &  r  )  [inline]
template<typename hash1_t , typename hash2_t >
void osl::hash::HashKeyMix< hash1_t, hash2_t >::setPlayer ( Player  p  )  [inline]
template<typename hash1_t , typename hash2_t >
void osl::hash::HashKeyMix< hash1_t, hash2_t >::setRandom (  )  [inline]
template<typename hash1_t , typename hash2_t >
size_t osl::hash::HashKeyMix< hash1_t, hash2_t >::size (  )  const [inline]
template<typename hash1_t , typename hash2_t >
size_t osl::hash::HashKeyMix< hash1_t, hash2_t >::value ( unsigned int  i  )  const [inline]

フレンドと関連する関数

template<typename hash1_t , typename hash2_t >
bool operator!= ( const HashKeyMix< hash1_t, hash2_t > &  h1,
const HashKeyMix< hash1_t, hash2_t > &  h2 
) [friend]

hashKeyMix.h98 行で定義されています。

template<typename hash1_t , typename hash2_t >
bool operator< ( HashKeyMix< hash1_t, hash2_t > const &  l,
HashKeyMix< hash1_t, hash2_t > const &  r 
) [friend]

ここの順序はset等に入れるためだけに使うので,完全に一致する必要はない

hashKeyMix.h90 行で定義されています。

template<typename hash1_t , typename hash2_t >
bool operator== ( HashKeyMix< hash1_t, hash2_t > const &  l,
HashKeyMix< hash1_t, hash2_t > const &  r 
) [friend]

hashKeyMix.h82 行で定義されています。


変数

template<typename hash1_t , typename hash2_t >
hash1_t osl::hash::HashKeyMix< hash1_t, hash2_t >::hash1 [private]
template<typename hash1_t , typename hash2_t >
hash2_t osl::hash::HashKeyMix< hash1_t, hash2_t >::hash2 [private]

このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義
Sun May 16 09:58:21 2010に生成されました。  doxygen 1.6.3