http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57765
--- Comment #3 from trashyankes at wp dot pl ---
I see, they fix wording in final version, but meaning didnt change (at last if
I understand it correctly).
"(...) primary class template or alias template is a template parameter pack,
it shall be the last template-parameter"
template <typename ... Ts> //<-this is a "primary class template"
class Foo { };
template <typename TR, typename ... Ts, TR (&f)(Ts...)>
// ^-- this isnt a "primary class template"
struct OpF<TR (Ts...), f> //<-this is a "primary class template"
{ };
"(...) function template shall not be followed by another template parameter
unless that template parameter can be deduced (...)"
template < typename TR, typename ... Ts, int i> TR tester(Ts...);
// cant be deduced --^