From 982b8443e8886112b2e3743c6882e60ff0847785 Mon Sep 17 00:00:00 2001 From: Gabriel Dos Reis Date: Fri, 10 Nov 2000 17:34:49 +0000 Subject: [PATCH] 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 --- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/include/bits/localefwd.h | 28 +++++++++++++-------------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 55ca9e044a4..3558c0a892e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2000-11-10 Gabriel Dos Reis + + * include/bits/localefwd.h (_Count_ones<>::_S_halfcount, + _Count_ones<>::_S_count): Turn into enumerators. + 2000-11-08 Mark Mitchell * 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 e57321ae2a3..73dba99788d 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 struct _Count_ones<_Num, 0, _Mask> - { static const unsigned int _S_count = _Num; }; - - template - const unsigned int _Count_ones<_Num, 0, _Mask>::_S_count; + { + enum + { + _S_count = _Num + }; + }; template 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 - const unsigned int _Count_ones<_Num, _Shift, _Mask>::_S_count; - - template - const unsigned int _Count_ones<_Num, _Shift, _Mask>::_S_halfcount; - // 22.1.1 Locale template class allocator; template class vector; -- 2.30.2