Commit abfadcb1 by Gabriel Dos Reis Committed by Gabriel Dos Reis

Makefile.am (sources): Add bitset.cc

	* src/Makefile.am (sources): Add bitset.cc
	* src/Makefile.in: Regenrate.

	* include/bits/std_bitset.h (_GLIBCPP_BITSET_BITS_PER_WORD): New
	macro. Replace __BITS_PER_WORDS throughout.
	(__BITS_PER_WORDS): Remove.
	(bitset<>::_M_do_find_first, bitset<>::_M_do_find_next): Move
	definitions to src/bitset.cc.

	* src/bitset.cc (bitset<>::_M_do_find_first,
	bitset<>::_M_do_find_next):  Define here.
	(_Bit_count<>::_S_bit_count, _Find_one<>::_S_first_one): Define
	here. Explicitly instantiate definitions.

From-SVN: r37837
parent 54fef245
2000-11-29 Gabriel Dos Reis <gdr@codesourcery.com>
* src/Makefile.am (sources): Add bitset.cc
* src/Makefile.in: Regenrate.
* include/bits/std_bitset.h (_GLIBCPP_BITSET_BITS_PER_WORD): New
macro. Replace __BITS_PER_WORDS throughout.
(__BITS_PER_WORDS): Remove.
(bitset<>::_M_do_find_first, bitset<>::_M_do_find_next): Move
definitions to src/bitset.cc.
* src/bitset.cc (bitset<>::_M_do_find_first,
bitset<>::_M_do_find_next): Define here.
(_Bit_count<>::_S_bit_count, _Find_one<>::_S_first_one): Define
here. Explicitly instantiate definitions.
2000-11-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 2000-11-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* config/cpu/powerpc/bits/atomicity.h (__exchange_and_add): Silence * config/cpu/powerpc/bits/atomicity.h (__exchange_and_add): Silence
......
...@@ -42,9 +42,9 @@ ...@@ -42,9 +42,9 @@
#include <bits/std_iostream.h> // for istream, ostream #include <bits/std_iostream.h> // for istream, ostream
#endif #endif
#define __BITS_PER_WORD (CHAR_BIT*sizeof(unsigned long)) #define _GLIBCPP_BITSET_BITS_PER_WORD (CHAR_BIT*sizeof(unsigned long))
#define __BITSET_WORDS(__n) \ #define __BITSET_WORDS(__n) \
((__n) < 1 ? 1 : ((__n) + __BITS_PER_WORD - 1)/__BITS_PER_WORD) ((__n) < 1 ? 1 : ((__n) + _GLIBCPP_BITSET_BITS_PER_WORD - 1)/_GLIBCPP_BITSET_BITS_PER_WORD)
__STL_BEGIN_NAMESPACE __STL_BEGIN_NAMESPACE
...@@ -82,11 +82,11 @@ struct _Base_bitset { ...@@ -82,11 +82,11 @@ struct _Base_bitset {
} }
static size_t _S_whichword( size_t __pos ) static size_t _S_whichword( size_t __pos )
{ return __pos / __BITS_PER_WORD; } { return __pos / _GLIBCPP_BITSET_BITS_PER_WORD; }
static size_t _S_whichbyte( size_t __pos ) static size_t _S_whichbyte( size_t __pos )
{ return (__pos % __BITS_PER_WORD) / CHAR_BIT; } { return (__pos % _GLIBCPP_BITSET_BITS_PER_WORD) / CHAR_BIT; }
static size_t _S_whichbit( size_t __pos ) static size_t _S_whichbit( size_t __pos )
{ return __pos % __BITS_PER_WORD; } { return __pos % _GLIBCPP_BITSET_BITS_PER_WORD; }
static _WordT _S_maskbit( size_t __pos ) static _WordT _S_maskbit( size_t __pos )
{ return (static_cast<_WordT>(1)) << _S_whichbit(__pos); } { return (static_cast<_WordT>(1)) << _S_whichbit(__pos); }
...@@ -176,15 +176,15 @@ template<size_t _Nw> ...@@ -176,15 +176,15 @@ template<size_t _Nw>
void _Base_bitset<_Nw>::_M_do_left_shift(size_t __shift) void _Base_bitset<_Nw>::_M_do_left_shift(size_t __shift)
{ {
if (__shift != 0) { if (__shift != 0) {
const size_t __wshift = __shift / __BITS_PER_WORD; const size_t __wshift = __shift / _GLIBCPP_BITSET_BITS_PER_WORD;
const size_t __offset = __shift % __BITS_PER_WORD; const size_t __offset = __shift % _GLIBCPP_BITSET_BITS_PER_WORD;
if (__offset == 0) if (__offset == 0)
for (size_t __n = _Nw - 1; __n >= __wshift; --__n) for (size_t __n = _Nw - 1; __n >= __wshift; --__n)
_M_w[__n] = _M_w[__n - __wshift]; _M_w[__n] = _M_w[__n - __wshift];
else { else {
const size_t __sub_offset = __BITS_PER_WORD - __offset; const size_t __sub_offset = _GLIBCPP_BITSET_BITS_PER_WORD - __offset;
for (size_t __n = _Nw - 1; __n > __wshift; --__n) for (size_t __n = _Nw - 1; __n > __wshift; --__n)
_M_w[__n] = (_M_w[__n - __wshift] << __offset) | _M_w[__n] = (_M_w[__n - __wshift] << __offset) |
(_M_w[__n - __wshift - 1] >> __sub_offset); (_M_w[__n - __wshift - 1] >> __sub_offset);
...@@ -199,8 +199,8 @@ template<size_t _Nw> ...@@ -199,8 +199,8 @@ template<size_t _Nw>
void _Base_bitset<_Nw>::_M_do_right_shift(size_t __shift) void _Base_bitset<_Nw>::_M_do_right_shift(size_t __shift)
{ {
if (__shift != 0) { if (__shift != 0) {
const size_t __wshift = __shift / __BITS_PER_WORD; const size_t __wshift = __shift / _GLIBCPP_BITSET_BITS_PER_WORD;
const size_t __offset = __shift % __BITS_PER_WORD; const size_t __offset = __shift % _GLIBCPP_BITSET_BITS_PER_WORD;
const size_t __limit = _Nw - __wshift - 1; const size_t __limit = _Nw - __wshift - 1;
if (__offset == 0) if (__offset == 0)
...@@ -208,7 +208,7 @@ void _Base_bitset<_Nw>::_M_do_right_shift(size_t __shift) ...@@ -208,7 +208,7 @@ void _Base_bitset<_Nw>::_M_do_right_shift(size_t __shift)
_M_w[__n] = _M_w[__n + __wshift]; _M_w[__n] = _M_w[__n + __wshift];
else { else {
const size_t __sub_offset = __BITS_PER_WORD - __offset; const size_t __sub_offset = _GLIBCPP_BITSET_BITS_PER_WORD - __offset;
for (size_t __n = 0; __n < __limit; ++__n) for (size_t __n = 0; __n < __limit; ++__n)
_M_w[__n] = (_M_w[__n + __wshift] >> __offset) | _M_w[__n] = (_M_w[__n + __wshift] >> __offset) |
(_M_w[__n + __wshift + 1] << __sub_offset); (_M_w[__n + __wshift + 1] << __sub_offset);
...@@ -240,7 +240,7 @@ size_t _Base_bitset<_Nw>::_M_do_find_first(size_t __not_found) const ...@@ -240,7 +240,7 @@ size_t _Base_bitset<_Nw>::_M_do_find_first(size_t __not_found) const
unsigned char __this_byte unsigned char __this_byte
= static_cast<unsigned char>(__thisword & (~(unsigned char)0)); = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
if ( __this_byte ) if ( __this_byte )
return __i*__BITS_PER_WORD + __j*CHAR_BIT + return __i*_GLIBCPP_BITSET_BITS_PER_WORD + __j*CHAR_BIT +
_First_one<true>::_S_first_one[__this_byte]; _First_one<true>::_S_first_one[__this_byte];
__thisword >>= CHAR_BIT; __thisword >>= CHAR_BIT;
...@@ -259,7 +259,7 @@ _Base_bitset<_Nw>::_M_do_find_next(size_t __prev, size_t __not_found) const ...@@ -259,7 +259,7 @@ _Base_bitset<_Nw>::_M_do_find_next(size_t __prev, size_t __not_found) const
++__prev; ++__prev;
// check out of bounds // check out of bounds
if ( __prev >= _Nw * __BITS_PER_WORD ) if ( __prev >= _Nw * _GLIBCPP_BITSET_BITS_PER_WORD )
return __not_found; return __not_found;
// search first word // search first word
...@@ -277,7 +277,7 @@ _Base_bitset<_Nw>::_M_do_find_next(size_t __prev, size_t __not_found) const ...@@ -277,7 +277,7 @@ _Base_bitset<_Nw>::_M_do_find_next(size_t __prev, size_t __not_found) const
unsigned char __this_byte unsigned char __this_byte
= static_cast<unsigned char>(__thisword & (~(unsigned char)0)); = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
if ( __this_byte ) if ( __this_byte )
return __i*__BITS_PER_WORD + __j*CHAR_BIT + return __i*_GLIBCPP_BITSET_BITS_PER_WORD + __j*CHAR_BIT +
_First_one<true>::_S_first_one[__this_byte]; _First_one<true>::_S_first_one[__this_byte];
__thisword >>= CHAR_BIT; __thisword >>= CHAR_BIT;
...@@ -294,7 +294,7 @@ _Base_bitset<_Nw>::_M_do_find_next(size_t __prev, size_t __not_found) const ...@@ -294,7 +294,7 @@ _Base_bitset<_Nw>::_M_do_find_next(size_t __prev, size_t __not_found) const
unsigned char __this_byte unsigned char __this_byte
= static_cast<unsigned char>(__thisword & (~(unsigned char)0)); = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
if ( __this_byte ) if ( __this_byte )
return __i*__BITS_PER_WORD + __j*CHAR_BIT + return __i*_GLIBCPP_BITSET_BITS_PER_WORD + __j*CHAR_BIT +
_First_one<true>::_S_first_one[__this_byte]; _First_one<true>::_S_first_one[__this_byte];
__thisword >>= CHAR_BIT; __thisword >>= CHAR_BIT;
...@@ -321,11 +321,11 @@ __STL_TEMPLATE_NULL struct _Base_bitset<1> { ...@@ -321,11 +321,11 @@ __STL_TEMPLATE_NULL struct _Base_bitset<1> {
_Base_bitset(unsigned long __val) : _M_w(__val) {} _Base_bitset(unsigned long __val) : _M_w(__val) {}
static size_t _S_whichword( size_t __pos ) static size_t _S_whichword( size_t __pos )
{ return __pos / __BITS_PER_WORD; } { return __pos / _GLIBCPP_BITSET_BITS_PER_WORD; }
static size_t _S_whichbyte( size_t __pos ) static size_t _S_whichbyte( size_t __pos )
{ return (__pos % __BITS_PER_WORD) / CHAR_BIT; } { return (__pos % _GLIBCPP_BITSET_BITS_PER_WORD) / CHAR_BIT; }
static size_t _S_whichbit( size_t __pos ) static size_t _S_whichbit( size_t __pos )
{ return __pos % __BITS_PER_WORD; } { return __pos % _GLIBCPP_BITSET_BITS_PER_WORD; }
static _WordT _S_maskbit( size_t __pos ) static _WordT _S_maskbit( size_t __pos )
{ return (static_cast<_WordT>(1)) << _S_whichbit(__pos); } { return (static_cast<_WordT>(1)) << _S_whichbit(__pos); }
...@@ -370,63 +370,6 @@ __STL_TEMPLATE_NULL struct _Base_bitset<1> { ...@@ -370,63 +370,6 @@ __STL_TEMPLATE_NULL struct _Base_bitset<1> {
}; };
//
// Definitions of non-inline functions from the single-word version of
// _Base_bitset.
//
size_t _Base_bitset<1>::_M_do_find_first(size_t __not_found) const
{
_WordT __thisword = _M_w;
if ( __thisword != static_cast<_WordT>(0) ) {
// find byte within word
for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) {
unsigned char __this_byte
= static_cast<unsigned char>(__thisword & (~(unsigned char)0));
if ( __this_byte )
return __j*CHAR_BIT + _First_one<true>::_S_first_one[__this_byte];
__thisword >>= CHAR_BIT;
}
}
// not found, so return a value that indicates failure.
return __not_found;
}
size_t _Base_bitset<1>::_M_do_find_next(size_t __prev, size_t __not_found ) const
{
// make bound inclusive
++__prev;
// check out of bounds
if ( __prev >= __BITS_PER_WORD )
return __not_found;
// search first (and only) word
_WordT __thisword = _M_w;
// mask off bits below bound
__thisword &= (~static_cast<_WordT>(0)) << _S_whichbit(__prev);
if ( __thisword != static_cast<_WordT>(0) ) {
// find byte within word
// get first byte into place
__thisword >>= _S_whichbyte(__prev) * CHAR_BIT;
for ( size_t __j = _S_whichbyte(__prev); __j < sizeof(_WordT); __j++ ) {
unsigned char __this_byte
= static_cast<unsigned char>(__thisword & (~(unsigned char)0));
if ( __this_byte )
return __j*CHAR_BIT + _First_one<true>::_S_first_one[__this_byte];
__thisword >>= CHAR_BIT;
}
}
// not found, so return a value that indicates failure.
return __not_found;
} // end _M_do_find_next
// ------------------------------------------------------------ // ------------------------------------------------------------
// Helper class to zero out the unused high-order bits in the highest word. // Helper class to zero out the unused high-order bits in the highest word.
...@@ -455,7 +398,7 @@ private: ...@@ -455,7 +398,7 @@ private:
private: private:
void _M_do_sanitize() { void _M_do_sanitize() {
_Sanitize<_Nb%__BITS_PER_WORD>::_M_do_sanitize(this->_M_hiword()); _Sanitize<_Nb%_GLIBCPP_BITSET_BITS_PER_WORD>::_M_do_sanitize(this->_M_hiword());
} }
public: public:
...@@ -942,120 +885,6 @@ ostream& operator<<(ostream& __os, const bitset<_Nb>& __x) { ...@@ -942,120 +885,6 @@ ostream& operator<<(ostream& __os, const bitset<_Nb>& __x) {
#endif /* __STL_USE_NEW_IOSTREAMS */ #endif /* __STL_USE_NEW_IOSTREAMS */
// ------------------------------------------------------------
// Lookup tables for find and count operations.
template<bool __dummy>
unsigned char _Bit_count<__dummy>::_S_bit_count[] = {
0, /* 0 */ 1, /* 1 */ 1, /* 2 */ 2, /* 3 */ 1, /* 4 */
2, /* 5 */ 2, /* 6 */ 3, /* 7 */ 1, /* 8 */ 2, /* 9 */
2, /* 10 */ 3, /* 11 */ 2, /* 12 */ 3, /* 13 */ 3, /* 14 */
4, /* 15 */ 1, /* 16 */ 2, /* 17 */ 2, /* 18 */ 3, /* 19 */
2, /* 20 */ 3, /* 21 */ 3, /* 22 */ 4, /* 23 */ 2, /* 24 */
3, /* 25 */ 3, /* 26 */ 4, /* 27 */ 3, /* 28 */ 4, /* 29 */
4, /* 30 */ 5, /* 31 */ 1, /* 32 */ 2, /* 33 */ 2, /* 34 */
3, /* 35 */ 2, /* 36 */ 3, /* 37 */ 3, /* 38 */ 4, /* 39 */
2, /* 40 */ 3, /* 41 */ 3, /* 42 */ 4, /* 43 */ 3, /* 44 */
4, /* 45 */ 4, /* 46 */ 5, /* 47 */ 2, /* 48 */ 3, /* 49 */
3, /* 50 */ 4, /* 51 */ 3, /* 52 */ 4, /* 53 */ 4, /* 54 */
5, /* 55 */ 3, /* 56 */ 4, /* 57 */ 4, /* 58 */ 5, /* 59 */
4, /* 60 */ 5, /* 61 */ 5, /* 62 */ 6, /* 63 */ 1, /* 64 */
2, /* 65 */ 2, /* 66 */ 3, /* 67 */ 2, /* 68 */ 3, /* 69 */
3, /* 70 */ 4, /* 71 */ 2, /* 72 */ 3, /* 73 */ 3, /* 74 */
4, /* 75 */ 3, /* 76 */ 4, /* 77 */ 4, /* 78 */ 5, /* 79 */
2, /* 80 */ 3, /* 81 */ 3, /* 82 */ 4, /* 83 */ 3, /* 84 */
4, /* 85 */ 4, /* 86 */ 5, /* 87 */ 3, /* 88 */ 4, /* 89 */
4, /* 90 */ 5, /* 91 */ 4, /* 92 */ 5, /* 93 */ 5, /* 94 */
6, /* 95 */ 2, /* 96 */ 3, /* 97 */ 3, /* 98 */ 4, /* 99 */
3, /* 100 */ 4, /* 101 */ 4, /* 102 */ 5, /* 103 */ 3, /* 104 */
4, /* 105 */ 4, /* 106 */ 5, /* 107 */ 4, /* 108 */ 5, /* 109 */
5, /* 110 */ 6, /* 111 */ 3, /* 112 */ 4, /* 113 */ 4, /* 114 */
5, /* 115 */ 4, /* 116 */ 5, /* 117 */ 5, /* 118 */ 6, /* 119 */
4, /* 120 */ 5, /* 121 */ 5, /* 122 */ 6, /* 123 */ 5, /* 124 */
6, /* 125 */ 6, /* 126 */ 7, /* 127 */ 1, /* 128 */ 2, /* 129 */
2, /* 130 */ 3, /* 131 */ 2, /* 132 */ 3, /* 133 */ 3, /* 134 */
4, /* 135 */ 2, /* 136 */ 3, /* 137 */ 3, /* 138 */ 4, /* 139 */
3, /* 140 */ 4, /* 141 */ 4, /* 142 */ 5, /* 143 */ 2, /* 144 */
3, /* 145 */ 3, /* 146 */ 4, /* 147 */ 3, /* 148 */ 4, /* 149 */
4, /* 150 */ 5, /* 151 */ 3, /* 152 */ 4, /* 153 */ 4, /* 154 */
5, /* 155 */ 4, /* 156 */ 5, /* 157 */ 5, /* 158 */ 6, /* 159 */
2, /* 160 */ 3, /* 161 */ 3, /* 162 */ 4, /* 163 */ 3, /* 164 */
4, /* 165 */ 4, /* 166 */ 5, /* 167 */ 3, /* 168 */ 4, /* 169 */
4, /* 170 */ 5, /* 171 */ 4, /* 172 */ 5, /* 173 */ 5, /* 174 */
6, /* 175 */ 3, /* 176 */ 4, /* 177 */ 4, /* 178 */ 5, /* 179 */
4, /* 180 */ 5, /* 181 */ 5, /* 182 */ 6, /* 183 */ 4, /* 184 */
5, /* 185 */ 5, /* 186 */ 6, /* 187 */ 5, /* 188 */ 6, /* 189 */
6, /* 190 */ 7, /* 191 */ 2, /* 192 */ 3, /* 193 */ 3, /* 194 */
4, /* 195 */ 3, /* 196 */ 4, /* 197 */ 4, /* 198 */ 5, /* 199 */
3, /* 200 */ 4, /* 201 */ 4, /* 202 */ 5, /* 203 */ 4, /* 204 */
5, /* 205 */ 5, /* 206 */ 6, /* 207 */ 3, /* 208 */ 4, /* 209 */
4, /* 210 */ 5, /* 211 */ 4, /* 212 */ 5, /* 213 */ 5, /* 214 */
6, /* 215 */ 4, /* 216 */ 5, /* 217 */ 5, /* 218 */ 6, /* 219 */
5, /* 220 */ 6, /* 221 */ 6, /* 222 */ 7, /* 223 */ 3, /* 224 */
4, /* 225 */ 4, /* 226 */ 5, /* 227 */ 4, /* 228 */ 5, /* 229 */
5, /* 230 */ 6, /* 231 */ 4, /* 232 */ 5, /* 233 */ 5, /* 234 */
6, /* 235 */ 5, /* 236 */ 6, /* 237 */ 6, /* 238 */ 7, /* 239 */
4, /* 240 */ 5, /* 241 */ 5, /* 242 */ 6, /* 243 */ 5, /* 244 */
6, /* 245 */ 6, /* 246 */ 7, /* 247 */ 5, /* 248 */ 6, /* 249 */
6, /* 250 */ 7, /* 251 */ 6, /* 252 */ 7, /* 253 */ 7, /* 254 */
8 /* 255 */
}; // end _Bit_count
template<bool __dummy>
unsigned char _First_one<__dummy>::_S_first_one[] = {
0, /* 0 */ 0, /* 1 */ 1, /* 2 */ 0, /* 3 */ 2, /* 4 */
0, /* 5 */ 1, /* 6 */ 0, /* 7 */ 3, /* 8 */ 0, /* 9 */
1, /* 10 */ 0, /* 11 */ 2, /* 12 */ 0, /* 13 */ 1, /* 14 */
0, /* 15 */ 4, /* 16 */ 0, /* 17 */ 1, /* 18 */ 0, /* 19 */
2, /* 20 */ 0, /* 21 */ 1, /* 22 */ 0, /* 23 */ 3, /* 24 */
0, /* 25 */ 1, /* 26 */ 0, /* 27 */ 2, /* 28 */ 0, /* 29 */
1, /* 30 */ 0, /* 31 */ 5, /* 32 */ 0, /* 33 */ 1, /* 34 */
0, /* 35 */ 2, /* 36 */ 0, /* 37 */ 1, /* 38 */ 0, /* 39 */
3, /* 40 */ 0, /* 41 */ 1, /* 42 */ 0, /* 43 */ 2, /* 44 */
0, /* 45 */ 1, /* 46 */ 0, /* 47 */ 4, /* 48 */ 0, /* 49 */
1, /* 50 */ 0, /* 51 */ 2, /* 52 */ 0, /* 53 */ 1, /* 54 */
0, /* 55 */ 3, /* 56 */ 0, /* 57 */ 1, /* 58 */ 0, /* 59 */
2, /* 60 */ 0, /* 61 */ 1, /* 62 */ 0, /* 63 */ 6, /* 64 */
0, /* 65 */ 1, /* 66 */ 0, /* 67 */ 2, /* 68 */ 0, /* 69 */
1, /* 70 */ 0, /* 71 */ 3, /* 72 */ 0, /* 73 */ 1, /* 74 */
0, /* 75 */ 2, /* 76 */ 0, /* 77 */ 1, /* 78 */ 0, /* 79 */
4, /* 80 */ 0, /* 81 */ 1, /* 82 */ 0, /* 83 */ 2, /* 84 */
0, /* 85 */ 1, /* 86 */ 0, /* 87 */ 3, /* 88 */ 0, /* 89 */
1, /* 90 */ 0, /* 91 */ 2, /* 92 */ 0, /* 93 */ 1, /* 94 */
0, /* 95 */ 5, /* 96 */ 0, /* 97 */ 1, /* 98 */ 0, /* 99 */
2, /* 100 */ 0, /* 101 */ 1, /* 102 */ 0, /* 103 */ 3, /* 104 */
0, /* 105 */ 1, /* 106 */ 0, /* 107 */ 2, /* 108 */ 0, /* 109 */
1, /* 110 */ 0, /* 111 */ 4, /* 112 */ 0, /* 113 */ 1, /* 114 */
0, /* 115 */ 2, /* 116 */ 0, /* 117 */ 1, /* 118 */ 0, /* 119 */
3, /* 120 */ 0, /* 121 */ 1, /* 122 */ 0, /* 123 */ 2, /* 124 */
0, /* 125 */ 1, /* 126 */ 0, /* 127 */ 7, /* 128 */ 0, /* 129 */
1, /* 130 */ 0, /* 131 */ 2, /* 132 */ 0, /* 133 */ 1, /* 134 */
0, /* 135 */ 3, /* 136 */ 0, /* 137 */ 1, /* 138 */ 0, /* 139 */
2, /* 140 */ 0, /* 141 */ 1, /* 142 */ 0, /* 143 */ 4, /* 144 */
0, /* 145 */ 1, /* 146 */ 0, /* 147 */ 2, /* 148 */ 0, /* 149 */
1, /* 150 */ 0, /* 151 */ 3, /* 152 */ 0, /* 153 */ 1, /* 154 */
0, /* 155 */ 2, /* 156 */ 0, /* 157 */ 1, /* 158 */ 0, /* 159 */
5, /* 160 */ 0, /* 161 */ 1, /* 162 */ 0, /* 163 */ 2, /* 164 */
0, /* 165 */ 1, /* 166 */ 0, /* 167 */ 3, /* 168 */ 0, /* 169 */
1, /* 170 */ 0, /* 171 */ 2, /* 172 */ 0, /* 173 */ 1, /* 174 */
0, /* 175 */ 4, /* 176 */ 0, /* 177 */ 1, /* 178 */ 0, /* 179 */
2, /* 180 */ 0, /* 181 */ 1, /* 182 */ 0, /* 183 */ 3, /* 184 */
0, /* 185 */ 1, /* 186 */ 0, /* 187 */ 2, /* 188 */ 0, /* 189 */
1, /* 190 */ 0, /* 191 */ 6, /* 192 */ 0, /* 193 */ 1, /* 194 */
0, /* 195 */ 2, /* 196 */ 0, /* 197 */ 1, /* 198 */ 0, /* 199 */
3, /* 200 */ 0, /* 201 */ 1, /* 202 */ 0, /* 203 */ 2, /* 204 */
0, /* 205 */ 1, /* 206 */ 0, /* 207 */ 4, /* 208 */ 0, /* 209 */
1, /* 210 */ 0, /* 211 */ 2, /* 212 */ 0, /* 213 */ 1, /* 214 */
0, /* 215 */ 3, /* 216 */ 0, /* 217 */ 1, /* 218 */ 0, /* 219 */
2, /* 220 */ 0, /* 221 */ 1, /* 222 */ 0, /* 223 */ 5, /* 224 */
0, /* 225 */ 1, /* 226 */ 0, /* 227 */ 2, /* 228 */ 0, /* 229 */
1, /* 230 */ 0, /* 231 */ 3, /* 232 */ 0, /* 233 */ 1, /* 234 */
0, /* 235 */ 2, /* 236 */ 0, /* 237 */ 1, /* 238 */ 0, /* 239 */
4, /* 240 */ 0, /* 241 */ 1, /* 242 */ 0, /* 243 */ 2, /* 244 */
0, /* 245 */ 1, /* 246 */ 0, /* 247 */ 3, /* 248 */ 0, /* 249 */
1, /* 250 */ 0, /* 251 */ 2, /* 252 */ 0, /* 253 */ 1, /* 254 */
0, /* 255 */
}; // end _First_one
#if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32) #if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
#pragma reset woff 1209 #pragma reset woff 1209
...@@ -1063,8 +892,6 @@ unsigned char _First_one<__dummy>::_S_first_one[] = { ...@@ -1063,8 +892,6 @@ unsigned char _First_one<__dummy>::_S_first_one[] = {
__STL_END_NAMESPACE __STL_END_NAMESPACE
#undef __BITS_PER_WORD
#undef __BITSET_WORDS #undef __BITSET_WORDS
#endif /* __SGI_STL_BITSET */ #endif /* __SGI_STL_BITSET */
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
## USA. ## USA.
## $Id: Makefile.am,v 1.51 2000/11/23 06:46:31 bkoz Exp $ ## $Id: Makefile.am,v 1.52 2000/11/25 09:11:15 bkoz Exp $
AUTOMAKE_OPTIONS = 1.3 gnits AUTOMAKE_OPTIONS = 1.3 gnits
MAINT_CHARSET = latin1 MAINT_CHARSET = latin1
...@@ -177,7 +177,7 @@ sources = \ ...@@ -177,7 +177,7 @@ sources = \
limitsMEMBERS.cc \ limitsMEMBERS.cc \
cmath.cc \ cmath.cc \
complex.cc complexf.cc complexl.cc complex_io.cc \ complex.cc complexf.cc complexl.cc complex_io.cc \
stdexcept.cc \ stdexcept.cc bitset.cc \
c++io.cc ios.cc stdstreams.cc strstream.cc \ c++io.cc ios.cc stdstreams.cc strstream.cc \
locale.cc localename.cc codecvt.cc \ locale.cc localename.cc codecvt.cc \
locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc
......
...@@ -168,7 +168,7 @@ build_headers = bits/std_limits.h bits/c++config.h bits/c++io.h bits/c++thread ...@@ -168,7 +168,7 @@ build_headers = bits/std_limits.h bits/c++config.h bits/c++io.h bits/c++thread
headers = $(base_headers) $(c_headers) headers = $(base_headers) $(c_headers)
sources = limitsMEMBERS.cc cmath.cc complex.cc complexf.cc complexl.cc complex_io.cc stdexcept.cc c++io.cc ios.cc stdstreams.cc strstream.cc locale.cc localename.cc codecvt.cc locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc sources = limitsMEMBERS.cc cmath.cc complex.cc complexf.cc complexl.cc complex_io.cc stdexcept.cc bitset.cc c++io.cc ios.cc stdstreams.cc strstream.cc locale.cc localename.cc codecvt.cc locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc
wstring_sources = wstring-inst.cc wstring_sources = wstring-inst.cc
...@@ -247,9 +247,9 @@ libinst_wstring_la_LDFLAGS = ...@@ -247,9 +247,9 @@ libinst_wstring_la_LDFLAGS =
libinst_wstring_la_LIBADD = libinst_wstring_la_LIBADD =
libinst_wstring_la_OBJECTS = wstring-inst.lo libinst_wstring_la_OBJECTS = wstring-inst.lo
libstdc___la_OBJECTS = limitsMEMBERS.lo cmath.lo complex.lo complexf.lo \ libstdc___la_OBJECTS = limitsMEMBERS.lo cmath.lo complex.lo complexf.lo \
complexl.lo complex_io.lo stdexcept.lo c++io.lo ios.lo stdstreams.lo \ complexl.lo complex_io.lo stdexcept.lo bitset.lo c++io.lo ios.lo \
strstream.lo locale.lo localename.lo codecvt.lo locale-inst.lo \ stdstreams.lo strstream.lo locale.lo localename.lo codecvt.lo \
stl-inst.lo misc-inst.lo valarray-inst.lo string-inst.lo locale-inst.lo stl-inst.lo misc-inst.lo valarray-inst.lo string-inst.lo
CXXFLAGS = @CXXFLAGS@ CXXFLAGS = @CXXFLAGS@
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX) CXXLD = $(CXX)
...@@ -400,7 +400,7 @@ distdir: $(DISTFILES) ...@@ -400,7 +400,7 @@ distdir: $(DISTFILES)
@for file in $(DISTFILES); do \ @for file in $(DISTFILES); do \
if test -f $$file; then d=.; else d=$(srcdir); fi; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \ if test -d $$d/$$file; then \
cp -pr $$d/$$file $(distdir)/$$file; \ cp -pr $$/$$file $(distdir)/$$file; \
else \ else \
test -f $(distdir)/$$file \ test -f $(distdir)/$$file \
|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
......
/* Low-level implementation of bitset template class from ISO C++. */ /*
* Copyright (c) 1998
// Copyright (C) 1997-1999 Free Software Foundation, Inc. * Silicon Graphics Computer Systems, Inc.
// *
// This file is part of the GNU ISO C++ Library. This library is free * Permission to use, copy, modify, distribute and sell this software
// software; you can redistribute it and/or modify it under the * and its documentation for any purpose is hereby granted without fee,
// terms of the GNU General Public License as published by the * provided that the above copyright notice appear in all copies and
// Free Software Foundation; either version 2, or (at your option) * that both that copyright notice and this permission notice appear
// any later version. * in supporting documentation. Silicon Graphics makes no
* representations about the suitability of this software for any
// This library is distributed in the hope that it will be useful, * purpose. It is provided "as is" without express or implied warranty.
// but WITHOUT ANY WARRANTY; without even the implied warranty of */
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
#include <bits/std_bitset.h> #include <bits/std_bitset.h>
#include <bits/std_climits.h>
static const size_t word_bits = sizeof (__bitset_word) * CHAR_BIT;
//
// Definitions of non-inline functions from the single-word version of
// _Base_bitset.
//
void size_t
__bitset_base_lshift (__bitset_word *arr, size_t n, size_t nlast, std::_Base_bitset<1>::_M_do_find_first(size_t __not_found) const
size_t offset, size_t nbits)
{ {
arr[n - 1] = arr[n - 1 - offset] << nbits; _WordT __thisword = _M_w;
for (size_t cnt = n - 1; cnt > offset; --cnt) if ( __thisword != static_cast<_WordT>(0) ) {
{ // find byte within word
arr[cnt] |= arr[cnt - 1 - offset] >> (word_bits - nbits); for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) {
arr[cnt - 1] = arr[cnt - 1 - offset] << nbits; unsigned char __this_byte
} = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
if ( __this_byte )
return __j*CHAR_BIT + _First_one<true>::_S_first_one[__this_byte];
memset (arr, '\0', offset * sizeof (__bitset_word)); __thisword >>= CHAR_BIT;
}
void
__bitset_base_rshift (__bitset_word *arr, size_t n, size_t nlast,
size_t offset, size_t nbits)
{
arr[0] = arr[offset] >> nbits;
for (size_t cnt = offset + 1; cnt < n; ++cnt)
{
arr[cnt - 1 - offset] |= arr[cnt] << (word_bits - nbits);
arr[cnt - offset] = arr[cnt] >> nbits;
} }
}
memset (&arr[n - offset], '\0', offset * sizeof (__bitset_word)); // not found, so return a value that indicates failure.
return __not_found;
} }
size_t size_t
__bitset_base_count (__bitset_word *arr, size_t n) std::_Base_bitset<1>::_M_do_find_next(size_t __prev, size_t __not_found) const
{ {
size_t result = 0; // make bound inclusive
++__prev;
while (n > 0)
{ // check out of bounds
__bitset_word word = arr[n]; if ( __prev >= _GLIBCPP_BITSET_BITS_PER_WORD )
return __not_found;
if (sizeof (__bitset_word) == 4)
{ // search first (and only) word
word = (word & 0x55555555) + ((word >> 1) & 0x55555555); _WordT __thisword = _M_w;
word = (word & 0x33333333) + ((word >> 2) & 0x33333333);
word = (word + (word >> 4)) & 0x0f0f0f0f; // mask off bits below bound
word = word + (word >> 8); __thisword &= (~static_cast<_WordT>(0)) << _S_whichbit(__prev);
word = (word + (word >> 16)) & 0xff;
} if ( __thisword != static_cast<_WordT>(0) ) {
else // find byte within word
{ // get first byte into place
// The only other possibility is a 64 bit word. __thisword >>= _S_whichbyte(__prev) * CHAR_BIT;
word = ((word & ((0x55555555UL << 16) << 16 | 0x55555555UL)) for ( size_t __j = _S_whichbyte(__prev); __j < sizeof(_WordT); __j++ ) {
+ ((word >> 1) unsigned char __this_byte
& ((0x55555555UL << 16) << 16 | 0x55555555UL))); = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
word = ((word & ((0x33333333UL << 16) << 16 | 0x33333333UL)) if ( __this_byte )
+ ((word >> 1) return __j*CHAR_BIT + _First_one<true>::_S_first_one[__this_byte];
& ((0x33333333UL << 16) << 16 | 0x33333333UL)));
word = ((word + (word >> 4)) __thisword >>= CHAR_BIT;
& ((0x0f0f0f0fUL << 16) << 16 | 0x0f0f0f0fUL));
word = (word + (word >> 8));
word = (word + (word >> 16));
word = (word + ((word >> 16) >> 16)) & 0xff;
}
result += word;
} }
}
// not found, so return a value that indicates failure.
return __not_found;
} // end _M_do_find_next
// ------------------------------------------------------------
// Lookup tables for find and count operations.
template<bool __dummy>
unsigned char std::_Bit_count<__dummy>::_S_bit_count[] = {
0, /* 0 */ 1, /* 1 */ 1, /* 2 */ 2, /* 3 */ 1, /* 4 */
2, /* 5 */ 2, /* 6 */ 3, /* 7 */ 1, /* 8 */ 2, /* 9 */
2, /* 10 */ 3, /* 11 */ 2, /* 12 */ 3, /* 13 */ 3, /* 14 */
4, /* 15 */ 1, /* 16 */ 2, /* 17 */ 2, /* 18 */ 3, /* 19 */
2, /* 20 */ 3, /* 21 */ 3, /* 22 */ 4, /* 23 */ 2, /* 24 */
3, /* 25 */ 3, /* 26 */ 4, /* 27 */ 3, /* 28 */ 4, /* 29 */
4, /* 30 */ 5, /* 31 */ 1, /* 32 */ 2, /* 33 */ 2, /* 34 */
3, /* 35 */ 2, /* 36 */ 3, /* 37 */ 3, /* 38 */ 4, /* 39 */
2, /* 40 */ 3, /* 41 */ 3, /* 42 */ 4, /* 43 */ 3, /* 44 */
4, /* 45 */ 4, /* 46 */ 5, /* 47 */ 2, /* 48 */ 3, /* 49 */
3, /* 50 */ 4, /* 51 */ 3, /* 52 */ 4, /* 53 */ 4, /* 54 */
5, /* 55 */ 3, /* 56 */ 4, /* 57 */ 4, /* 58 */ 5, /* 59 */
4, /* 60 */ 5, /* 61 */ 5, /* 62 */ 6, /* 63 */ 1, /* 64 */
2, /* 65 */ 2, /* 66 */ 3, /* 67 */ 2, /* 68 */ 3, /* 69 */
3, /* 70 */ 4, /* 71 */ 2, /* 72 */ 3, /* 73 */ 3, /* 74 */
4, /* 75 */ 3, /* 76 */ 4, /* 77 */ 4, /* 78 */ 5, /* 79 */
2, /* 80 */ 3, /* 81 */ 3, /* 82 */ 4, /* 83 */ 3, /* 84 */
4, /* 85 */ 4, /* 86 */ 5, /* 87 */ 3, /* 88 */ 4, /* 89 */
4, /* 90 */ 5, /* 91 */ 4, /* 92 */ 5, /* 93 */ 5, /* 94 */
6, /* 95 */ 2, /* 96 */ 3, /* 97 */ 3, /* 98 */ 4, /* 99 */
3, /* 100 */ 4, /* 101 */ 4, /* 102 */ 5, /* 103 */ 3, /* 104 */
4, /* 105 */ 4, /* 106 */ 5, /* 107 */ 4, /* 108 */ 5, /* 109 */
5, /* 110 */ 6, /* 111 */ 3, /* 112 */ 4, /* 113 */ 4, /* 114 */
5, /* 115 */ 4, /* 116 */ 5, /* 117 */ 5, /* 118 */ 6, /* 119 */
4, /* 120 */ 5, /* 121 */ 5, /* 122 */ 6, /* 123 */ 5, /* 124 */
6, /* 125 */ 6, /* 126 */ 7, /* 127 */ 1, /* 128 */ 2, /* 129 */
2, /* 130 */ 3, /* 131 */ 2, /* 132 */ 3, /* 133 */ 3, /* 134 */
4, /* 135 */ 2, /* 136 */ 3, /* 137 */ 3, /* 138 */ 4, /* 139 */
3, /* 140 */ 4, /* 141 */ 4, /* 142 */ 5, /* 143 */ 2, /* 144 */
3, /* 145 */ 3, /* 146 */ 4, /* 147 */ 3, /* 148 */ 4, /* 149 */
4, /* 150 */ 5, /* 151 */ 3, /* 152 */ 4, /* 153 */ 4, /* 154 */
5, /* 155 */ 4, /* 156 */ 5, /* 157 */ 5, /* 158 */ 6, /* 159 */
2, /* 160 */ 3, /* 161 */ 3, /* 162 */ 4, /* 163 */ 3, /* 164 */
4, /* 165 */ 4, /* 166 */ 5, /* 167 */ 3, /* 168 */ 4, /* 169 */
4, /* 170 */ 5, /* 171 */ 4, /* 172 */ 5, /* 173 */ 5, /* 174 */
6, /* 175 */ 3, /* 176 */ 4, /* 177 */ 4, /* 178 */ 5, /* 179 */
4, /* 180 */ 5, /* 181 */ 5, /* 182 */ 6, /* 183 */ 4, /* 184 */
5, /* 185 */ 5, /* 186 */ 6, /* 187 */ 5, /* 188 */ 6, /* 189 */
6, /* 190 */ 7, /* 191 */ 2, /* 192 */ 3, /* 193 */ 3, /* 194 */
4, /* 195 */ 3, /* 196 */ 4, /* 197 */ 4, /* 198 */ 5, /* 199 */
3, /* 200 */ 4, /* 201 */ 4, /* 202 */ 5, /* 203 */ 4, /* 204 */
5, /* 205 */ 5, /* 206 */ 6, /* 207 */ 3, /* 208 */ 4, /* 209 */
4, /* 210 */ 5, /* 211 */ 4, /* 212 */ 5, /* 213 */ 5, /* 214 */
6, /* 215 */ 4, /* 216 */ 5, /* 217 */ 5, /* 218 */ 6, /* 219 */
5, /* 220 */ 6, /* 221 */ 6, /* 222 */ 7, /* 223 */ 3, /* 224 */
4, /* 225 */ 4, /* 226 */ 5, /* 227 */ 4, /* 228 */ 5, /* 229 */
5, /* 230 */ 6, /* 231 */ 4, /* 232 */ 5, /* 233 */ 5, /* 234 */
6, /* 235 */ 5, /* 236 */ 6, /* 237 */ 6, /* 238 */ 7, /* 239 */
4, /* 240 */ 5, /* 241 */ 5, /* 242 */ 6, /* 243 */ 5, /* 244 */
6, /* 245 */ 6, /* 246 */ 7, /* 247 */ 5, /* 248 */ 6, /* 249 */
6, /* 250 */ 7, /* 251 */ 6, /* 252 */ 7, /* 253 */ 7, /* 254 */
8 /* 255 */
}; // end _Bit_count
template<bool __dummy>
unsigned char std::_First_one<__dummy>::_S_first_one[] = {
0, /* 0 */ 0, /* 1 */ 1, /* 2 */ 0, /* 3 */ 2, /* 4 */
0, /* 5 */ 1, /* 6 */ 0, /* 7 */ 3, /* 8 */ 0, /* 9 */
1, /* 10 */ 0, /* 11 */ 2, /* 12 */ 0, /* 13 */ 1, /* 14 */
0, /* 15 */ 4, /* 16 */ 0, /* 17 */ 1, /* 18 */ 0, /* 19 */
2, /* 20 */ 0, /* 21 */ 1, /* 22 */ 0, /* 23 */ 3, /* 24 */
0, /* 25 */ 1, /* 26 */ 0, /* 27 */ 2, /* 28 */ 0, /* 29 */
1, /* 30 */ 0, /* 31 */ 5, /* 32 */ 0, /* 33 */ 1, /* 34 */
0, /* 35 */ 2, /* 36 */ 0, /* 37 */ 1, /* 38 */ 0, /* 39 */
3, /* 40 */ 0, /* 41 */ 1, /* 42 */ 0, /* 43 */ 2, /* 44 */
0, /* 45 */ 1, /* 46 */ 0, /* 47 */ 4, /* 48 */ 0, /* 49 */
1, /* 50 */ 0, /* 51 */ 2, /* 52 */ 0, /* 53 */ 1, /* 54 */
0, /* 55 */ 3, /* 56 */ 0, /* 57 */ 1, /* 58 */ 0, /* 59 */
2, /* 60 */ 0, /* 61 */ 1, /* 62 */ 0, /* 63 */ 6, /* 64 */
0, /* 65 */ 1, /* 66 */ 0, /* 67 */ 2, /* 68 */ 0, /* 69 */
1, /* 70 */ 0, /* 71 */ 3, /* 72 */ 0, /* 73 */ 1, /* 74 */
0, /* 75 */ 2, /* 76 */ 0, /* 77 */ 1, /* 78 */ 0, /* 79 */
4, /* 80 */ 0, /* 81 */ 1, /* 82 */ 0, /* 83 */ 2, /* 84 */
0, /* 85 */ 1, /* 86 */ 0, /* 87 */ 3, /* 88 */ 0, /* 89 */
1, /* 90 */ 0, /* 91 */ 2, /* 92 */ 0, /* 93 */ 1, /* 94 */
0, /* 95 */ 5, /* 96 */ 0, /* 97 */ 1, /* 98 */ 0, /* 99 */
2, /* 100 */ 0, /* 101 */ 1, /* 102 */ 0, /* 103 */ 3, /* 104 */
0, /* 105 */ 1, /* 106 */ 0, /* 107 */ 2, /* 108 */ 0, /* 109 */
1, /* 110 */ 0, /* 111 */ 4, /* 112 */ 0, /* 113 */ 1, /* 114 */
0, /* 115 */ 2, /* 116 */ 0, /* 117 */ 1, /* 118 */ 0, /* 119 */
3, /* 120 */ 0, /* 121 */ 1, /* 122 */ 0, /* 123 */ 2, /* 124 */
0, /* 125 */ 1, /* 126 */ 0, /* 127 */ 7, /* 128 */ 0, /* 129 */
1, /* 130 */ 0, /* 131 */ 2, /* 132 */ 0, /* 133 */ 1, /* 134 */
0, /* 135 */ 3, /* 136 */ 0, /* 137 */ 1, /* 138 */ 0, /* 139 */
2, /* 140 */ 0, /* 141 */ 1, /* 142 */ 0, /* 143 */ 4, /* 144 */
0, /* 145 */ 1, /* 146 */ 0, /* 147 */ 2, /* 148 */ 0, /* 149 */
1, /* 150 */ 0, /* 151 */ 3, /* 152 */ 0, /* 153 */ 1, /* 154 */
0, /* 155 */ 2, /* 156 */ 0, /* 157 */ 1, /* 158 */ 0, /* 159 */
5, /* 160 */ 0, /* 161 */ 1, /* 162 */ 0, /* 163 */ 2, /* 164 */
0, /* 165 */ 1, /* 166 */ 0, /* 167 */ 3, /* 168 */ 0, /* 169 */
1, /* 170 */ 0, /* 171 */ 2, /* 172 */ 0, /* 173 */ 1, /* 174 */
0, /* 175 */ 4, /* 176 */ 0, /* 177 */ 1, /* 178 */ 0, /* 179 */
2, /* 180 */ 0, /* 181 */ 1, /* 182 */ 0, /* 183 */ 3, /* 184 */
0, /* 185 */ 1, /* 186 */ 0, /* 187 */ 2, /* 188 */ 0, /* 189 */
1, /* 190 */ 0, /* 191 */ 6, /* 192 */ 0, /* 193 */ 1, /* 194 */
0, /* 195 */ 2, /* 196 */ 0, /* 197 */ 1, /* 198 */ 0, /* 199 */
3, /* 200 */ 0, /* 201 */ 1, /* 202 */ 0, /* 203 */ 2, /* 204 */
0, /* 205 */ 1, /* 206 */ 0, /* 207 */ 4, /* 208 */ 0, /* 209 */
1, /* 210 */ 0, /* 211 */ 2, /* 212 */ 0, /* 213 */ 1, /* 214 */
0, /* 215 */ 3, /* 216 */ 0, /* 217 */ 1, /* 218 */ 0, /* 219 */
2, /* 220 */ 0, /* 221 */ 1, /* 222 */ 0, /* 223 */ 5, /* 224 */
0, /* 225 */ 1, /* 226 */ 0, /* 227 */ 2, /* 228 */ 0, /* 229 */
1, /* 230 */ 0, /* 231 */ 3, /* 232 */ 0, /* 233 */ 1, /* 234 */
0, /* 235 */ 2, /* 236 */ 0, /* 237 */ 1, /* 238 */ 0, /* 239 */
4, /* 240 */ 0, /* 241 */ 1, /* 242 */ 0, /* 243 */ 2, /* 244 */
0, /* 245 */ 1, /* 246 */ 0, /* 247 */ 3, /* 248 */ 0, /* 249 */
1, /* 250 */ 0, /* 251 */ 2, /* 252 */ 0, /* 253 */ 1, /* 254 */
0, /* 255 */
}; // end _First_one
// Explicitly instantiate them.
template unsigned char std::_Bit_count<false>::_S_bit_count[];
template unsigned char std::_Bit_count<true>::_S_bit_count[];
template unsigned char std::_First_one<false>::_S_first_one[];
template unsigned char std::_First_one<true>::_S_first_one[];
return result;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment