http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52008



--- Comment #15 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-11-07 
00:08:48 UTC ---

(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.



> My last proposal is: gcc should report error at the place where the wannabe

> specialization is defined (comment with "line 18") with something like: "18:

> This template specialization does not match the template parameters\n12: of

> this class template". I cannot check whether gcc currently fixed to do this, 
> so

> I'm sorry if this is behind the current state.



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

        ^

t.cc:2:8: note: primary template here

 struct tuple_sliced

        ^

t.cc:10:13: error: 'tuple' does not name a type

     typedef tuple<Types...> type;

             ^

Reply via email to