http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52008
--- Comment #16 from Michal Malecki <ethouris at gmail dot com> 2012-11-07 07:17:46 UTC --- (In reply to comment #15) > (In reply to comment #14) > > GCC "rejects" it by doing ICE. I don't think this is the right thing that > > GCC > > should do. > > No it doesn't it gives an error, see comment 4. ... > > I'm sorry if this is behind the current state. In this below, just add #include <tuple> to get rid of undefined symbol errors :) > t.cc:1:11: error: 'size_t' has not been declared > template <size_t B, typename Type1, typename... Types> > ^ > t.cc:8:8: error: partial specialization is not more specialized than the > primary template because it replaces multiple parameters with a pack expansion > struct tuple_sliced<0, Types...> // <-- line 18 > ^ And that's what it should be, thanks. (Would be nice of course, if the part of the message starting from "the primary template" is another message assigned to the line where the primary template is defined, but this is just cosmetic :).