From: Daniel Frey Date: Fri, 22 Jan 2010 20:50:15 +0000 (+0000) Subject: functional (_Index_tuple, [...]): Simplify and speed-up. X-Git-Tag: upstream/12.2.0~94960 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0d9709e1bf2b6e4842307575422563c43955373a;p=platform%2Fupstream%2Fgcc.git functional (_Index_tuple, [...]): Simplify and speed-up. 2010-01-22 Daniel Frey * include/std/functional (_Index_tuple, _Build_index_tuple): Simplify and speed-up. From-SVN: r156178 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index bfdf16a..28db3d7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2010-01-22 Daniel Frey + + * include/std/functional (_Index_tuple, _Build_index_tuple): + Simplify and speed-up. + 2010-01-22 Joern Rennecke PR libstdc++/36101, PR libstdc++/42813 diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional index f28490a..68b7842 100644 --- a/libstdc++-v3/include/std/functional +++ b/libstdc++-v3/include/std/functional @@ -847,22 +847,22 @@ namespace std * in a tuple. */ template - struct _Index_tuple { }; + struct _Index_tuple + { + typedef _Index_tuple<_Indexes..., sizeof...(_Indexes)> __next; + }; /// Builds an _Index_tuple<0, 1, 2, ..., _Num-1>. - template > - struct _Build_index_tuple; - - template - struct _Build_index_tuple<_Num, _Index_tuple<_Indexes...> > - : _Build_index_tuple<_Num - 1, - _Index_tuple<_Indexes..., sizeof...(_Indexes)> > - { }; + template + struct _Build_index_tuple + { + typedef typename _Build_index_tuple<_Num-1>::__type::__next __type; + }; - template - struct _Build_index_tuple<0, _Index_tuple<_Indexes...> > + template<> + struct _Build_index_tuple<0> { - typedef _Index_tuple<_Indexes...> __type; + typedef _Index_tuple<> __type; }; /**