inline bool resize(GUINT newsize) { GUINT oldsize = m_container.Count; m_container.resize(newsize/GUINT_BIT_COUNT + 1,false); while(oldsize<m_container.Count) { m_container[oldsize] = 0; } return true; }
inline void set(GUINT bit_index) { if(bit_index>=size()) { resize(bit_index); } m_container[bit_index >> GUINT_EXPONENT] |= (1 << (bit_index & (GUINT_BIT_COUNT-1))); }
gim_bitset(GUINT bits_count) { resize(bits_count); }
inline void clear(GUINT bit_index) { m_container[bit_index >> GUINT_EXPONENT] &= ~(1 << (bit_index & (GUINT_BIT_COUNT-1))); }
inline char get(GUINT bit_index) { if(bit_index>=size()) { return 0; } char value = m_container[bit_index >> GUINT_EXPONENT] & (1 << (bit_index & (GUINT_BIT_COUNT-1))); return value; }
GIM_RSORT_TOKEN(string IM_RSORT_TOKEN& rtoken) { m_key = rtoken.m_key; m_value = rtoken.m_value; }