aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Dos Reis <gdr@codesourcery.com>2000-11-10 17:34:49 +0000
committerGabriel Dos Reis <gdr@gcc.gnu.org>2000-11-10 17:34:49 +0000
commit982b8443e8886112b2e3743c6882e60ff0847785 (patch)
tree6a1bff7eeac67be125ea0618bbf1048f758f2475
parent1e60838877bd590b4e960587a102c8c354d81048 (diff)
downloadgcc-982b8443e8886112b2e3743c6882e60ff0847785.zip
gcc-982b8443e8886112b2e3743c6882e60ff0847785.tar.gz
gcc-982b8443e8886112b2e3743c6882e60ff0847785.tar.bz2
localefwd.h (_Count_ones<>::_S_halfcount, [...]): Turn into enumerators.
* include/bits/localefwd.h (_Count_ones<>::_S_halfcount, _Count_ones<>::_S_count): Turn into enumerators. From-SVN: r37372
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/include/bits/localefwd.h28
2 files changed, 19 insertions, 14 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 55ca9e0..3558c0a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-10 Gabriel Dos Reis <gdr@codesourcery.com>
+
+ * include/bits/localefwd.h (_Count_ones<>::_S_halfcount,
+ _Count_ones<>::_S_count): Turn into enumerators.
+
2000-11-08 Mark Mitchell <mark@codesourcery.com>
* include/bits/codecvt.h (codecvt::do_out): Make it const-correct.
diff --git a/libstdc++-v3/include/bits/localefwd.h b/libstdc++-v3/include/bits/localefwd.h
index e57321a..73dba99 100644
--- a/libstdc++-v3/include/bits/localefwd.h
+++ b/libstdc++-v3/include/bits/localefwd.h
@@ -49,28 +49,28 @@ namespace std
unsigned int _Mask = (~0u >> _Shift) >
struct _Count_ones;
+ // It is preferable to use enumerators instead of integral static data
+ // members to avoid emission of superflous variables -- gdr.
template<unsigned int _Num, unsigned int _Mask>
struct _Count_ones<_Num, 0, _Mask>
- { static const unsigned int _S_count = _Num; };
-
- template<unsigned int _Num, unsigned int _Mask>
- const unsigned int _Count_ones<_Num, 0, _Mask>::_S_count;
+ {
+ enum
+ {
+ _S_count = _Num
+ };
+ };
template<unsigned int _Num, int _Shift, unsigned int _Mask>
struct _Count_ones
{
- static const unsigned int _S_halfcount =
- _Count_ones<_Num, _Shift/2, (_Mask^((~_Mask)>>(_Shift/2))) >::_S_count;
- static const unsigned int _S_count
- = (_S_halfcount&_Mask) + ((_S_halfcount>>_Shift)&_Mask);
+ enum
+ {
+ _S_halfcount = _Count_ones<_Num, _Shift/2,
+ (_Mask^((~_Mask)>>(_Shift/2))) >::_S_count,
+ _S_count = (_S_halfcount&_Mask) + ((_S_halfcount>>_Shift)&_Mask)
+ };
};
- template<unsigned int _Num, int _Shift, unsigned int _Mask>
- const unsigned int _Count_ones<_Num, _Shift, _Mask>::_S_count;
-
- template<unsigned int _Num, int _Shift, unsigned int _Mask>
- const unsigned int _Count_ones<_Num, _Shift, _Mask>::_S_halfcount;
-
// 22.1.1 Locale
template<typename _Tp> class allocator;
template<typename _Tp, typename _Alloc> class vector;