クラス テンプレート shttl::xbitset< N >

#include <xbitset.h>

shttl::xbitset< N >に対する継承グラフ

Inheritance graph
[凡例]
shttl::xbitset< N >のコラボレーション図

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

Public 型

typedef shttl_bitset< N > base_type
typedef ssize_t size_type
typedef xbitset< N > this_type

Public メソッド

template<>
const signed char _find_0_map [16]
template<>
const signed char _find_0_map [16]
template<>
const signed char _find_0_map [16]
template<>
const signed char _find_0_map [16]
bool all (const bool v) const
bool all () const
bool any (const bool v) const
bool any () const
const const_reference at (const size_type p) const
this_typedec ()
size_type find (const int v=0, const size_type s=0) const
size_type find_and_flip (const int v=0, const size_type s=0)
this_typeinc ()
bool none (const bool v) const
bool none () const
u64 operator++ (int)
this_typeoperator++ ()
u64 operator-- (int)
this_typeoperator-- ()
xbitsetoperator= (const xbitset &rhs)
const const_reference operator[] (const size_type p) const
void reset (void)
 xbitset (const xbitset &rhs)
template<class C, class R, class A>
 xbitset (const std::basic_string< C, R, A > &s, typename std::basic_string< C, R, A >::size_type p=0, typename std::basic_string< C, R, A >::size_type l=-1)
 xbitset (const u64 v=0)

Static Public 変数

static const size_type npos = -1

Protected メソッド

size_type _find (const int v, const size_type s) const

Static Protected 変数

static const signed char _find_0_map [16]

構成

class  const_reference
class  reference

説明

template<int N>
class shttl::xbitset< N >

xbitset.h47 行で定義されています。


型定義

template<int N>
typedef shttl_bitset<N> shttl::xbitset< N >::base_type

xbitset.h53 行で定義されています。

template<int N>
typedef ssize_t shttl::xbitset< N >::size_type

shttl::shttl_bitset< N >を再定義しています。

xbitset.h54 行で定義されています。

template<int N>
typedef xbitset<N> shttl::xbitset< N >::this_type

shttl::shttl_bitset< N >を再定義しています。

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


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

template<int N>
shttl::xbitset< N >::xbitset ( const u64  v = 0  )  [inline]

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

00061                                  : base_type(v)
00062         {
00063         }

template<int N>
template<class C, class R, class A>
shttl::xbitset< N >::xbitset ( const std::basic_string< C, R, A > &  s,
typename std::basic_string< C, R, A >::size_type  p = 0,
typename std::basic_string< C, R, A >::size_type  l = -1 
) [inline, explicit]

xbitset.h66 行で定義されています。

00070           :
00071             base_type(s, p, l)
00072         {
00073         }

template<int N>
shttl::xbitset< N >::xbitset ( const xbitset< N > &  rhs  )  [inline]

xbitset.h75 行で定義されています。

00075                                     : base_type(rhs) 
00076         {
00077         }


関数

template<int N>
size_type shttl::xbitset< N >::_find ( const int  v,
const size_type  s 
) const [protected]

参照元 shttl::xbitset< N >::find().

Here is the caller graph for this function:

template<>
const signed char shttl::xbitset< 4 >::_find_0_map (  ) 

xbitset.h324 行で定義されています。

template<>
const signed char shttl::xbitset< 3 >::_find_0_map (  ) 

xbitset.h312 行で定義されています。

template<>
const signed char shttl::xbitset< 2 >::_find_0_map (  ) 

xbitset.h304 行で定義されています。

template<>
const signed char shttl::xbitset< 1 >::_find_0_map (  ) 

xbitset.h298 行で定義されています。

参照元 shttl::xbitset< N >::find().

Here is the caller graph for this function:

template<int N>
bool shttl::xbitset< N >::all ( const bool  v  )  const [inline]

xbitset.h167 行で定義されています。

参照先 shttl::xbitset< N >::all()shttl::xbitset< N >::none().

00167 { return v ? all()  : none(); }

関数の呼び出しグラフ:

template<int N>
bool shttl::xbitset< N >::all (  )  const [inline]

xbitset.h141 行で定義されています。

参照先 shttl::shttl_bitset< N >::test().

参照元 shttl::xbitset< N >::all()shttl::xbitset< N >::any()shttl::xbitset< N >::none().

00142         { 
00143             for (int p = 0; p < N; ++p)
00144                 if (!base_type::test(p))
00145                     return false;
00146             return true;
00147         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

template<int N>
bool shttl::xbitset< N >::any ( const bool  v  )  const [inline]

xbitset.h165 行で定義されています。

参照先 shttl::xbitset< N >::all()shttl::xbitset< N >::any().

00165 { return v ? any()  : !all(); }

関数の呼び出しグラフ:

template<int N>
bool shttl::xbitset< N >::any (  )  const [inline]

shttl::shttl_bitset< N >を再定義しています。

xbitset.h157 行で定義されています。

参照先 shttl::shttl_bitset< N >::test().

参照元 shttl::xbitset< N >::any().

00158         { 
00159             for (int p = 0; p < N; ++p)
00160                 if (base_type::test(p))
00161                     return true;
00162             return false;
00163         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

template<int N>
const const_reference shttl::xbitset< N >::at ( const size_type  p  )  const [inline]

xbitset.h130 行で定義されています。

参照先 shttl::xbitset< N >::operator[]()shttl::shttl_bitset< N >::size().

00131         { 
00132             if (p < 0 || size() <= p){
00133                 throw std::out_of_range("xbitset::at");
00134             }
00135 
00136             return operator[](p);
00137         }

関数の呼び出しグラフ:

template<int N>
this_type& shttl::xbitset< N >::dec (  )  [inline]

xbitset.h253 行で定義されています。

参照先 shttl::shttl_bitset< N >::size()shttl::shttl_bitset< N >::to_ulong().

00254         {
00255             u64 v = to_ulong();
00256             if (v > umin(size()))
00257                 *this = v - 1;
00258             else
00259                 throw std::underflow_error("xbitset::dec");
00260             return *this;
00261         }

関数の呼び出しグラフ:

template<int N>
size_type shttl::xbitset< N >::find ( const int  v = 0,
const size_type  s = 0 
) const [inline]

xbitset.h176 行で定義されています。

参照先 shttl::xbitset< N >::_find()shttl::xbitset< N >::_find_0_map()shttl::shttl_bitset< N >::size()shttl::shttl_bitset< N >::to_ulong().

参照元 shttl::xbitset< N >::find_and_flip().

00177         {
00178         #ifdef SHTTL_DEBUG
00179             if (s < 0 || size() <= s){
00180                 throw std::out_of_range("xbitset::find");
00181             }
00182         #endif
00183 
00184             if (v == 0 && s == 0 && size() <= 4) 
00185                 return _find_0_map[to_ulong()];        
00186             else 
00187                 return _find(v, s);
00188         } 

関数の呼び出しグラフ:

Here is the caller graph for this function:

template<int N>
size_type shttl::xbitset< N >::find_and_flip ( const int  v = 0,
const size_type  s = 0 
) [inline]

xbitset.h191 行で定義されています。

参照先 shttl::xbitset< N >::find()shttl::shttl_bitset< N >::flip()shttl::xbitset< N >::nposshttl::shttl_bitset< N >::size().

00192         {
00193         #ifdef SHTTL_DEBUG
00194             if (s < 0 || size() <= s){
00195                 throw std::out_of_range("xbitset::find_and_flip");
00196             }
00197         #endif
00198 
00199             const size_type p = find(v, s);
00200             if (p != npos)
00201                 base_type::flip(p);
00202             return p;
00203         }

関数の呼び出しグラフ:

template<int N>
this_type& shttl::xbitset< N >::inc (  )  [inline]

xbitset.h243 行で定義されています。

参照先 shttl::shttl_bitset< N >::size()shttl::shttl_bitset< N >::to_ulong().

00244         {
00245             u64 v = to_ulong();
00246             if (v < umax(size())) 
00247                 *this = v + 1;
00248             else
00249                 throw std::overflow_error("xbitset::inc");
00250             return *this;
00251         }

関数の呼び出しグラフ:

template<int N>
bool shttl::xbitset< N >::none ( const bool  v  )  const [inline]

xbitset.h166 行で定義されています。

参照先 shttl::xbitset< N >::all()shttl::xbitset< N >::none().

00166 { return v ? none() :  all(); }

関数の呼び出しグラフ:

template<int N>
bool shttl::xbitset< N >::none (  )  const [inline]

shttl::shttl_bitset< N >を再定義しています。

xbitset.h149 行で定義されています。

参照先 shttl::shttl_bitset< N >::test().

参照元 shttl::xbitset< N >::all()shttl::xbitset< N >::none().

00150         { 
00151             for (int p = 0; p < N; ++p)
00152                 if (base_type::test(p))
00153                     return false;
00154             return true;
00155         }

関数の呼び出しグラフ:

Here is the caller graph for this function:

template<int N>
u64 shttl::xbitset< N >::operator++ ( int   )  [inline]

xbitset.h227 行で定義されています。

参照先 shttl::shttl_bitset< N >::size()shttl::shttl_bitset< N >::to_ulong().

00228         {
00229             u64 v = to_ulong();
00230             if (v < umax(size()))
00231                 *this = v + 1;
00232             return v;
00233         }

関数の呼び出しグラフ:

template<int N>
this_type& shttl::xbitset< N >::operator++ (  )  [inline]

xbitset.h211 行で定義されています。

参照先 shttl::shttl_bitset< N >::size()shttl::shttl_bitset< N >::to_ulong().

00212         {
00213             u64 v = to_ulong();
00214             if (v < umax(size()))
00215                 *this = v + 1;
00216             return *this;
00217         }

関数の呼び出しグラフ:

template<int N>
u64 shttl::xbitset< N >::operator-- ( int   )  [inline]

xbitset.h235 行で定義されています。

参照先 shttl::shttl_bitset< N >::size()shttl::shttl_bitset< N >::to_ulong().

00236         {
00237             u64 v = to_ulong();
00238             if (v > umin(size()))
00239                 *this = v - 1;
00240             return v;
00241         }

関数の呼び出しグラフ:

template<int N>
this_type& shttl::xbitset< N >::operator-- (  )  [inline]

xbitset.h219 行で定義されています。

参照先 shttl::shttl_bitset< N >::size()shttl::shttl_bitset< N >::to_ulong().

00220         {
00221             u64 v = to_ulong();
00222             if (v > umin(size()))
00223                 *this = v - 1;
00224             return *this;
00225         }

関数の呼び出しグラフ:

template<int N>
xbitset& shttl::xbitset< N >::operator= ( const xbitset< N > &  rhs  )  [inline]

xbitset.h79 行で定義されています。

00080         {
00081             base_type::operator=(rhs);
00082             return *this;
00083         }

template<int N>
const const_reference shttl::xbitset< N >::operator[] ( const size_type  p  )  const [inline]

xbitset.h125 行で定義されています。

参照元 shttl::xbitset< N >::at().

00126         {
00127             return const_reference(this, p);
00128         }

Here is the caller graph for this function:

template<int N>
void shttl::xbitset< N >::reset ( void   )  [inline]

shttl::shttl_bitset< N >を再定義しています。

xbitset.h207 行で定義されています。

00207                          {
00208             *this = 0;
00209         }


変数

template<int N>
const signed char shttl::xbitset< N >::_find_0_map [static, protected]

初期値:

 {
        -1
    }

xbitset.h269 行で定義されています。

template<int N>
const size_type shttl::xbitset< N >::npos = -1 [static]

xbitset.h173 行で定義されています。

参照元 shttl::xbitset< N >::find_and_flip().


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