std_bitset.h: Trivial formatting fixes.
2004-05-15 Paolo Carlini <pcarlini@suse.de> * include/std/std_bitset.h: Trivial formatting fixes. From-SVN: r81878
This commit is contained in:
parent
aaa6750272
commit
5c33bb6218
|
@ -1,3 +1,7 @@
|
|||
2004-05-15 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/std/std_bitset.h: Trivial formatting fixes.
|
||||
|
||||
2004-05-14 Paolo Carlini <pcarlini@suse.de>
|
||||
Ivan Godard <igodard@pacbell.net>
|
||||
|
||||
|
|
|
@ -61,7 +61,8 @@
|
|||
|
||||
#define _GLIBCXX_BITSET_BITS_PER_WORD numeric_limits<unsigned long>::digits
|
||||
#define _GLIBCXX_BITSET_WORDS(__n) \
|
||||
((__n) < 1 ? 0 : ((__n) + _GLIBCXX_BITSET_BITS_PER_WORD - 1)/_GLIBCXX_BITSET_BITS_PER_WORD)
|
||||
((__n) < 1 ? 0 : ((__n) + _GLIBCXX_BITSET_BITS_PER_WORD - 1) \
|
||||
/ _GLIBCXX_BITSET_BITS_PER_WORD)
|
||||
|
||||
namespace _GLIBCXX_STD
|
||||
{
|
||||
|
@ -81,7 +82,9 @@ namespace _GLIBCXX_STD
|
|||
/// 0 is the least significant word.
|
||||
_WordT _M_w[_Nw];
|
||||
|
||||
_Base_bitset() { _M_do_reset(); }
|
||||
_Base_bitset()
|
||||
{ _M_do_reset(); }
|
||||
|
||||
_Base_bitset(unsigned long __val)
|
||||
{
|
||||
_M_do_reset();
|
||||
|
@ -113,10 +116,12 @@ namespace _GLIBCXX_STD
|
|||
{ return _M_w[_S_whichword(__pos)]; }
|
||||
|
||||
_WordT&
|
||||
_M_hiword() { return _M_w[_Nw - 1]; }
|
||||
_M_hiword()
|
||||
{ return _M_w[_Nw - 1]; }
|
||||
|
||||
_WordT
|
||||
_M_hiword() const { return _M_w[_Nw - 1]; }
|
||||
_M_hiword() const
|
||||
{ return _M_w[_Nw - 1]; }
|
||||
|
||||
void
|
||||
_M_do_and(const _Base_bitset<_Nw>& __x)
|
||||
|
@ -160,7 +165,8 @@ namespace _GLIBCXX_STD
|
|||
}
|
||||
|
||||
void
|
||||
_M_do_reset() { memset(_M_w, 0, _Nw * sizeof(_WordT)); }
|
||||
_M_do_reset()
|
||||
{ std::memset(_M_w, 0, _Nw * sizeof(_WordT)); }
|
||||
|
||||
bool
|
||||
_M_is_equal(const _Base_bitset<_Nw>& __x) const
|
||||
|
@ -220,10 +226,11 @@ namespace _GLIBCXX_STD
|
|||
_M_w[__n] = _M_w[__n - __wshift];
|
||||
else
|
||||
{
|
||||
const size_t __sub_offset = _GLIBCXX_BITSET_BITS_PER_WORD - __offset;
|
||||
const size_t __sub_offset = (_GLIBCXX_BITSET_BITS_PER_WORD
|
||||
- __offset);
|
||||
for (size_t __n = _Nw - 1; __n > __wshift; --__n)
|
||||
_M_w[__n] = (_M_w[__n - __wshift] << __offset) |
|
||||
(_M_w[__n - __wshift - 1] >> __sub_offset);
|
||||
_M_w[__n] = ((_M_w[__n - __wshift] << __offset)
|
||||
| (_M_w[__n - __wshift - 1] >> __sub_offset));
|
||||
_M_w[__wshift] = _M_w[0] << __offset;
|
||||
}
|
||||
|
||||
|
@ -246,10 +253,11 @@ namespace _GLIBCXX_STD
|
|||
_M_w[__n] = _M_w[__n + __wshift];
|
||||
else
|
||||
{
|
||||
const size_t __sub_offset = _GLIBCXX_BITSET_BITS_PER_WORD - __offset;
|
||||
const size_t __sub_offset = (_GLIBCXX_BITSET_BITS_PER_WORD
|
||||
- __offset);
|
||||
for (size_t __n = 0; __n < __limit; ++__n)
|
||||
_M_w[__n] = (_M_w[__n + __wshift] >> __offset) |
|
||||
(_M_w[__n + __wshift + 1] << __sub_offset);
|
||||
_M_w[__n] = ((_M_w[__n + __wshift] >> __offset)
|
||||
| (_M_w[__n + __wshift + 1] << __sub_offset));
|
||||
_M_w[__limit] = _M_w[_Nw-1] >> __offset;
|
||||
}
|
||||
|
||||
|
@ -275,8 +283,8 @@ namespace _GLIBCXX_STD
|
|||
{
|
||||
_WordT __thisword = _M_w[__i];
|
||||
if (__thisword != static_cast<_WordT>(0))
|
||||
return __i * _GLIBCXX_BITSET_BITS_PER_WORD
|
||||
+ __builtin_ctzl(__thisword);
|
||||
return (__i * _GLIBCXX_BITSET_BITS_PER_WORD
|
||||
+ __builtin_ctzl(__thisword));
|
||||
}
|
||||
// not found, so return an indication of failure.
|
||||
return __not_found;
|
||||
|
@ -301,8 +309,8 @@ namespace _GLIBCXX_STD
|
|||
__thisword &= (~static_cast<_WordT>(0)) << _S_whichbit(__prev);
|
||||
|
||||
if (__thisword != static_cast<_WordT>(0))
|
||||
return __i * _GLIBCXX_BITSET_BITS_PER_WORD
|
||||
+ __builtin_ctzl(__thisword);
|
||||
return (__i * _GLIBCXX_BITSET_BITS_PER_WORD
|
||||
+ __builtin_ctzl(__thisword));
|
||||
|
||||
// check subsequent words
|
||||
__i++;
|
||||
|
@ -310,14 +318,13 @@ namespace _GLIBCXX_STD
|
|||
{
|
||||
__thisword = _M_w[__i];
|
||||
if (__thisword != static_cast<_WordT>(0))
|
||||
return __i * _GLIBCXX_BITSET_BITS_PER_WORD
|
||||
+ __builtin_ctzl(__thisword);
|
||||
return (__i * _GLIBCXX_BITSET_BITS_PER_WORD
|
||||
+ __builtin_ctzl(__thisword));
|
||||
}
|
||||
// not found, so return an indication of failure.
|
||||
return __not_found;
|
||||
} // end _M_do_find_next
|
||||
|
||||
|
||||
/**
|
||||
* @if maint
|
||||
* Base class, specialization for a single word.
|
||||
|
@ -331,8 +338,13 @@ namespace _GLIBCXX_STD
|
|||
typedef unsigned long _WordT;
|
||||
_WordT _M_w;
|
||||
|
||||
_Base_bitset( void ) : _M_w(0) {}
|
||||
_Base_bitset(unsigned long __val) : _M_w(__val) {}
|
||||
_Base_bitset(void)
|
||||
: _M_w(0)
|
||||
{}
|
||||
|
||||
_Base_bitset(unsigned long __val)
|
||||
: _M_w(__val)
|
||||
{}
|
||||
|
||||
static size_t
|
||||
_S_whichword(size_t __pos )
|
||||
|
@ -351,53 +363,68 @@ namespace _GLIBCXX_STD
|
|||
{ return (static_cast<_WordT>(1)) << _S_whichbit(__pos); }
|
||||
|
||||
_WordT&
|
||||
_M_getword(size_t) { return _M_w; }
|
||||
_M_getword(size_t)
|
||||
{ return _M_w; }
|
||||
|
||||
_WordT
|
||||
_M_getword(size_t) const { return _M_w; }
|
||||
_M_getword(size_t) const
|
||||
{ return _M_w; }
|
||||
|
||||
_WordT&
|
||||
_M_hiword() { return _M_w; }
|
||||
_M_hiword()
|
||||
{ return _M_w; }
|
||||
|
||||
_WordT
|
||||
_M_hiword() const { return _M_w; }
|
||||
_M_hiword() const
|
||||
{ return _M_w; }
|
||||
|
||||
void
|
||||
_M_do_and(const _Base_bitset<1>& __x) { _M_w &= __x._M_w; }
|
||||
_M_do_and(const _Base_bitset<1>& __x)
|
||||
{ _M_w &= __x._M_w; }
|
||||
|
||||
void
|
||||
_M_do_or(const _Base_bitset<1>& __x) { _M_w |= __x._M_w; }
|
||||
_M_do_or(const _Base_bitset<1>& __x)
|
||||
{ _M_w |= __x._M_w; }
|
||||
|
||||
void
|
||||
_M_do_xor(const _Base_bitset<1>& __x) { _M_w ^= __x._M_w; }
|
||||
_M_do_xor(const _Base_bitset<1>& __x)
|
||||
{ _M_w ^= __x._M_w; }
|
||||
|
||||
void
|
||||
_M_do_left_shift(size_t __shift) { _M_w <<= __shift; }
|
||||
_M_do_left_shift(size_t __shift)
|
||||
{ _M_w <<= __shift; }
|
||||
|
||||
void
|
||||
_M_do_right_shift(size_t __shift) { _M_w >>= __shift; }
|
||||
_M_do_right_shift(size_t __shift)
|
||||
{ _M_w >>= __shift; }
|
||||
|
||||
void
|
||||
_M_do_flip() { _M_w = ~_M_w; }
|
||||
_M_do_flip()
|
||||
{ _M_w = ~_M_w; }
|
||||
|
||||
void
|
||||
_M_do_set() { _M_w = ~static_cast<_WordT>(0); }
|
||||
_M_do_set()
|
||||
{ _M_w = ~static_cast<_WordT>(0); }
|
||||
|
||||
void
|
||||
_M_do_reset() { _M_w = 0; }
|
||||
_M_do_reset()
|
||||
{ _M_w = 0; }
|
||||
|
||||
bool
|
||||
_M_is_equal(const _Base_bitset<1>& __x) const
|
||||
{ return _M_w == __x._M_w; }
|
||||
|
||||
bool
|
||||
_M_is_any() const { return _M_w != 0; }
|
||||
_M_is_any() const
|
||||
{ return _M_w != 0; }
|
||||
|
||||
size_t
|
||||
_M_do_count() const { return __builtin_popcountl(_M_w); }
|
||||
_M_do_count() const
|
||||
{ return __builtin_popcountl(_M_w); }
|
||||
|
||||
unsigned long
|
||||
_M_do_to_ulong() const { return _M_w; }
|
||||
_M_do_to_ulong() const
|
||||
{ return _M_w; }
|
||||
|
||||
size_t
|
||||
_M_do_find_first(size_t __not_found) const
|
||||
|
@ -424,7 +451,6 @@ namespace _GLIBCXX_STD
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @if maint
|
||||
* Base class, specialization for no storage (zero-length %bitset).
|
||||
|
@ -437,8 +463,11 @@ namespace _GLIBCXX_STD
|
|||
{
|
||||
typedef unsigned long _WordT;
|
||||
|
||||
_Base_bitset() {}
|
||||
_Base_bitset(unsigned long) {}
|
||||
_Base_bitset()
|
||||
{}
|
||||
|
||||
_Base_bitset(unsigned long)
|
||||
{}
|
||||
|
||||
static size_t
|
||||
_S_whichword(size_t __pos )
|
||||
|
@ -471,54 +500,69 @@ namespace _GLIBCXX_STD
|
|||
}
|
||||
|
||||
_WordT
|
||||
_M_hiword() const { return 0; }
|
||||
_M_hiword() const
|
||||
{ return 0; }
|
||||
|
||||
void
|
||||
_M_do_and(const _Base_bitset<0>&) { }
|
||||
_M_do_and(const _Base_bitset<0>&)
|
||||
{}
|
||||
|
||||
void
|
||||
_M_do_or(const _Base_bitset<0>&) { }
|
||||
_M_do_or(const _Base_bitset<0>&)
|
||||
{}
|
||||
|
||||
void
|
||||
_M_do_xor(const _Base_bitset<0>&) { }
|
||||
_M_do_xor(const _Base_bitset<0>&)
|
||||
{}
|
||||
|
||||
void
|
||||
_M_do_left_shift(size_t) { }
|
||||
_M_do_left_shift(size_t)
|
||||
{}
|
||||
|
||||
void
|
||||
_M_do_right_shift(size_t) { }
|
||||
_M_do_right_shift(size_t)
|
||||
{}
|
||||
|
||||
void
|
||||
_M_do_flip() { }
|
||||
_M_do_flip()
|
||||
{}
|
||||
|
||||
void
|
||||
_M_do_set() { }
|
||||
_M_do_set()
|
||||
{}
|
||||
|
||||
void
|
||||
_M_do_reset() { }
|
||||
_M_do_reset()
|
||||
{}
|
||||
|
||||
// Are all empty bitsets equal to each other? Are they equal to
|
||||
// themselves? How to compare a thing which has no state? What is
|
||||
// the sound of one zero-length bitset clapping?
|
||||
bool
|
||||
_M_is_equal(const _Base_bitset<0>&) const { return true; }
|
||||
_M_is_equal(const _Base_bitset<0>&) const
|
||||
{ return true; }
|
||||
|
||||
bool
|
||||
_M_is_any() const { return false; }
|
||||
_M_is_any() const
|
||||
{ return false; }
|
||||
|
||||
size_t
|
||||
_M_do_count() const { return 0; }
|
||||
_M_do_count() const
|
||||
{ return 0; }
|
||||
|
||||
unsigned long
|
||||
_M_do_to_ulong() const { return 0; }
|
||||
_M_do_to_ulong() const
|
||||
{ return 0; }
|
||||
|
||||
// Normally "not found" is the size, but that could also be
|
||||
// misinterpreted as an index in this corner case. Oh well.
|
||||
size_t
|
||||
_M_do_find_first(size_t) const { return 0; }
|
||||
_M_do_find_first(size_t) const
|
||||
{ return 0; }
|
||||
|
||||
size_t
|
||||
_M_do_find_next(size_t, size_t) const { return 0; }
|
||||
_M_do_find_next(size_t, size_t) const
|
||||
{ return 0; }
|
||||
};
|
||||
|
||||
|
||||
|
@ -534,7 +578,6 @@ namespace _GLIBCXX_STD
|
|||
struct _Sanitize<0>
|
||||
{ static void _S_do_sanitize(unsigned long) {} };
|
||||
|
||||
|
||||
/**
|
||||
* @brief The %bitset class represents a @e fixed-size sequence of bits.
|
||||
*
|
||||
|
@ -600,7 +643,8 @@ namespace _GLIBCXX_STD
|
|||
* @endif
|
||||
*/
|
||||
template<size_t _Nb>
|
||||
class bitset : private _Base_bitset<_GLIBCXX_BITSET_WORDS(_Nb)>
|
||||
class bitset
|
||||
: private _Base_bitset<_GLIBCXX_BITSET_WORDS(_Nb)>
|
||||
{
|
||||
private:
|
||||
typedef _Base_bitset<_GLIBCXX_BITSET_WORDS(_Nb)> _Base;
|
||||
|
@ -643,7 +687,8 @@ namespace _GLIBCXX_STD
|
|||
_M_bpos = _Base::_S_whichbit(__pos);
|
||||
}
|
||||
|
||||
~reference() { }
|
||||
~reference()
|
||||
{ }
|
||||
|
||||
// For b[i] = __x;
|
||||
reference&
|
||||
|
@ -688,24 +733,28 @@ namespace _GLIBCXX_STD
|
|||
|
||||
// 23.3.5.1 constructors:
|
||||
/// All bits set to zero.
|
||||
bitset() { }
|
||||
bitset()
|
||||
{ }
|
||||
|
||||
/// Initial bits bitwise-copied from a single word (others set to zero).
|
||||
bitset(unsigned long __val) : _Base(__val)
|
||||
bitset(unsigned long __val)
|
||||
: _Base(__val)
|
||||
{ _M_do_sanitize(); }
|
||||
|
||||
/**
|
||||
* @brief Use a subset of a string.
|
||||
* @param s A string of '0' and '1' characters.
|
||||
* @param position Index of the first character in @a s to use; defaults
|
||||
* to zero.
|
||||
* @param position Index of the first character in @a s to use;
|
||||
* defaults to zero.
|
||||
* @throw std::out_of_range If @a pos is bigger the size of @a s.
|
||||
* @throw std::invalid_argument If a character appears in the string
|
||||
* which is neither '0' nor '1'.
|
||||
*/
|
||||
template<class _CharT, class _Traits, class _Alloc>
|
||||
explicit bitset(const basic_string<_CharT, _Traits, _Alloc>& __s,
|
||||
size_t __position = 0) : _Base()
|
||||
explicit
|
||||
bitset(const basic_string<_CharT, _Traits, _Alloc>& __s,
|
||||
size_t __position = 0)
|
||||
: _Base()
|
||||
{
|
||||
if (__position > __s.size())
|
||||
__throw_out_of_range(__N("bitset::bitset initial position "
|
||||
|
@ -725,7 +774,8 @@ namespace _GLIBCXX_STD
|
|||
*/
|
||||
template<class _CharT, class _Traits, class _Alloc>
|
||||
bitset(const basic_string<_CharT, _Traits, _Alloc>& __s,
|
||||
size_t __position, size_t __n) : _Base()
|
||||
size_t __position, size_t __n)
|
||||
: _Base()
|
||||
{
|
||||
if (__position > __s.size())
|
||||
__throw_out_of_range(__N("bitset::bitset initial position "
|
||||
|
@ -836,10 +886,8 @@ namespace _GLIBCXX_STD
|
|||
|
||||
bool
|
||||
_Unchecked_test(size_t __pos) const
|
||||
{
|
||||
return (this->_M_getword(__pos) & _Base::_S_maskbit(__pos))
|
||||
!= static_cast<_WordT>(0);
|
||||
}
|
||||
{ return ((this->_M_getword(__pos) & _Base::_S_maskbit(__pos))
|
||||
!= static_cast<_WordT>(0)); }
|
||||
//@}
|
||||
|
||||
// Set, reset, and flip.
|
||||
|
@ -919,7 +967,8 @@ namespace _GLIBCXX_STD
|
|||
|
||||
/// See the no-argument flip().
|
||||
bitset<_Nb>
|
||||
operator~() const { return bitset<_Nb>(*this).flip(); }
|
||||
operator~() const
|
||||
{ return bitset<_Nb>(*this).flip(); }
|
||||
|
||||
//@{
|
||||
/**
|
||||
|
@ -939,10 +988,12 @@ namespace _GLIBCXX_STD
|
|||
* @endif
|
||||
*/
|
||||
reference
|
||||
operator[](size_t __position) { return reference(*this,__position); }
|
||||
operator[](size_t __position)
|
||||
{ return reference(*this,__position); }
|
||||
|
||||
bool
|
||||
operator[](size_t __position) const { return _Unchecked_test(__position); }
|
||||
operator[](size_t __position) const
|
||||
{ return _Unchecked_test(__position); }
|
||||
//@}
|
||||
|
||||
/**
|
||||
|
@ -952,7 +1003,8 @@ namespace _GLIBCXX_STD
|
|||
* represented in an @c unsigned @c long.
|
||||
*/
|
||||
unsigned long
|
||||
to_ulong() const { return this->_M_do_to_ulong(); }
|
||||
to_ulong() const
|
||||
{ return this->_M_do_to_ulong(); }
|
||||
|
||||
/**
|
||||
* @brief Retuns a character interpretation of the %bitset.
|
||||
|
@ -989,11 +1041,13 @@ namespace _GLIBCXX_STD
|
|||
|
||||
/// Returns the number of bits which are set.
|
||||
size_t
|
||||
count() const { return this->_M_do_count(); }
|
||||
count() const
|
||||
{ return this->_M_do_count(); }
|
||||
|
||||
/// Returns the total number of bits.
|
||||
size_t
|
||||
size() const { return _Nb; }
|
||||
size() const
|
||||
{ return _Nb; }
|
||||
|
||||
//@{
|
||||
/// These comparisons for equality/inequality are, well, @e bitwise.
|
||||
|
@ -1025,14 +1079,16 @@ namespace _GLIBCXX_STD
|
|||
* @return True if at least one bit is set.
|
||||
*/
|
||||
bool
|
||||
any() const { return this->_M_is_any(); }
|
||||
any() const
|
||||
{ return this->_M_is_any(); }
|
||||
|
||||
/**
|
||||
* @brief Tests whether any of the bits are on.
|
||||
* @return True if none of the bits are set.
|
||||
*/
|
||||
bool
|
||||
none() const { return !this->_M_is_any(); }
|
||||
none() const
|
||||
{ return !this->_M_is_any(); }
|
||||
|
||||
//@{
|
||||
/// Self-explanatory.
|
||||
|
@ -1181,7 +1237,7 @@ namespace _GLIBCXX_STD
|
|||
}
|
||||
else
|
||||
{
|
||||
char_type __c2 = _Traits::to_char_type(__c1);
|
||||
const char_type __c2 = _Traits::to_char_type(__c1);
|
||||
if (__c2 == __zero)
|
||||
__tmp.push_back('0');
|
||||
else if (__c2 == __one)
|
||||
|
|
Loading…
Reference in New Issue