Because generics aren't real (you made this a generic by using "auto"). There 
are no generics, only pieces of code that the compiler can copy paste for 
whatever type you use them with at a given place.

In the first version you just declare that kind of template and make it so the 
compiler can use it to generate a proc when you use the template-name somewhere 
in your code for the specific type you have.

In the second version you're trying to assign such a copy-paste template to a 
variable. That's not possible, because generics aren't real. They're compiler 
copy-paste instructions.

Reply via email to