Index: libstdc++-v3/include/std/functional =================================================================== --- libstdc++-v3/include/std/functional (revision 156173) +++ libstdc++-v3/include/std/functional (working copy) @@ -847,22 +847,22 @@ * 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; }; /**