クラス テンプレート shttl::double_hasher< T, OFFSET, U >

#include <double_hasher.h>

shttl::double_hasher< T, OFFSET, U >に対する継承グラフ

Inheritance graph
[凡例]
shttl::double_hasher< T, OFFSET, U >のコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public 型

typedef static_off_hasher<
T, OFFSET > 
base_type
typedef base_type::size_type size_type
typedef double_hasher< T,
OFFSET, U > 
this_type
typedef std::pair< T, U > value_type

Public メソッド

 double_hasher (const size_t i)
size_type index (const value_type &p) const
bool match (const value_type &lhs, const value_type &rhs) const
value_type rebuild (const value_type &tag, size_type index) const
size_type size () const
value_type tag (const value_type &t) const

Protected 変数

base_type m_bash_hasher

説明

template<class T, ssize_t OFFSET = 0, class U = T>
class shttl::double_hasher< T, OFFSET, U >

double_hasher.h44 行で定義されています。


型定義

template<class T, ssize_t OFFSET = 0, class U = T>
typedef static_off_hasher<T, OFFSET> shttl::double_hasher< T, OFFSET, U >::base_type

double_hasher.h48 行で定義されています。

template<class T, ssize_t OFFSET = 0, class U = T>
typedef base_type::size_type shttl::double_hasher< T, OFFSET, U >::size_type

shttl::hasher< std::pair< T, U > >を再定義しています。

double_hasher.h49 行で定義されています。

template<class T, ssize_t OFFSET = 0, class U = T>
typedef double_hasher<T, OFFSET, U> shttl::double_hasher< T, OFFSET, U >::this_type

double_hasher.h57 行で定義されています。

template<class T, ssize_t OFFSET = 0, class U = T>
typedef std::pair<T, U> shttl::double_hasher< T, OFFSET, U >::value_type

double_hasher.h58 行で定義されています。


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

template<class T, ssize_t OFFSET = 0, class U = T>
shttl::double_hasher< T, OFFSET, U >::double_hasher ( const size_t  i  )  [inline, explicit]

double_hasher.h65 行で定義されています。

00065                                                :
00066             m_bash_hasher(i)
00067         { 
00068         }


関数

template<class T, ssize_t OFFSET = 0, class U = T>
size_type shttl::double_hasher< T, OFFSET, U >::index ( const value_type p  )  const [inline, virtual]

shttl::hasher< std::pair< T, U > >を実装しています。

double_hasher.h72 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::idx_mask()shttl::double_hasher< T, OFFSET, U >::m_bash_hasher.

00073         {
00074             return ((p.first >> m_bash_hasher. off_bit()) ^ p.second) & m_bash_hasher.idx_mask();
00075         }

関数の呼び出しグラフ:

template<class T, ssize_t OFFSET = 0, class U = T>
bool shttl::double_hasher< T, OFFSET, U >::match ( const value_type lhs,
const value_type rhs 
) const [inline, virtual]

shttl::hasher< std::pair< T, U > >を実装しています。

double_hasher.h77 行で定義されています。

参照先 shttl::static_off_hasher< T, OFFSET >::idx_mask()shttl::double_hasher< T, OFFSET, U >::m_bash_hashershttl::static_off_hasher< T, OFFSET >::match().

00078         {
00079             return ((m_bash_hasher.match(lhs.first, rhs.first)) &&
00080                 ((lhs.second & m_bash_hasher.idx_mask()) == (rhs.second & m_bash_hasher.idx_mask())));
00081         }

関数の呼び出しグラフ:

template<class T, ssize_t OFFSET = 0, class U = T>
value_type shttl::double_hasher< T, OFFSET, U >::rebuild ( const value_type tag,
size_type  index 
) const [inline]

double_hasher.h92 行で定義されています。

参照先 shttl::double_hasher< T, OFFSET, U >::m_bash_hashershttl::static_off_hasher< T, OFFSET >::rebuild().

00093         {
00094             return 
00095                 std::make_pair(
00096                     m_bash_hasher.rebuild(tag.first, index),
00097                     tag.second 
00098                 );
00099         }

関数の呼び出しグラフ:

template<class T, ssize_t OFFSET = 0, class U = T>
size_type shttl::double_hasher< T, OFFSET, U >::size (  )  const [inline, virtual]

shttl::hasher< std::pair< T, U > >を実装しています。

double_hasher.h61 行で定義されています。

参照先 shttl::double_hasher< T, OFFSET, U >::m_bash_hashershttl::static_off_hasher< T, OFFSET >::size().

00061 { return m_bash_hasher.size(); }

関数の呼び出しグラフ:

template<class T, ssize_t OFFSET = 0, class U = T>
value_type shttl::double_hasher< T, OFFSET, U >::tag ( const value_type t  )  const [inline, virtual]

shttl::hasher< std::pair< T, U > >を実装しています。

double_hasher.h83 行で定義されています。

参照先 shttl::double_hasher< T, OFFSET, U >::m_bash_hashershttl::static_off_hasher< T, OFFSET >::tag().

00084         {
00085             return 
00086                 std::make_pair(
00087                     m_bash_hasher.tag(t.first),
00088                     t.second 
00089                 );
00090         }

関数の呼び出しグラフ:


変数

template<class T, ssize_t OFFSET = 0, class U = T>
base_type shttl::double_hasher< T, OFFSET, U >::m_bash_hasher [protected]

double_hasher.h52 行で定義されています。

参照元 shttl::double_hasher< T, OFFSET, U >::index()shttl::double_hasher< T, OFFSET, U >::match()shttl::double_hasher< T, OFFSET, U >::rebuild()shttl::double_hasher< T, OFFSET, U >::size()shttl::double_hasher< T, OFFSET, U >::tag().


このクラスの説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 15:33:56 2013に生成されました。  doxygen 1.4.7