|
|
|
|
|
by AnimalMuppet
3992 days ago
|
|
No. Concepts? It's a way of saying "for your type T to use this template, T must inherit from X, or support these operations, or some other restriction". It lets you have a template that takes a type T, but not just any type T will do. For example, if you have a templated sort function, the restriction might be that T must have a < operator. Now, in Go, you don't have generics. But you can have a sort function that takes a type (interface) that means "something that has a less-than function", and because of the way Go does OO, anything that has that function works. This doesn't get Go to the point of having templates that will take any type whatsoever (unless you use empty interfaces). I feel like I'm still using the wrong word in one or two places. But I hope this is more clear than my previous comment. |
|
Yeah, that would be Concepts. IIRC, C++ doesn't have them landed yet.
>Now, in Go, you don't have generics. But you can have a sort function that takes a type (interface) that means "something that has a less-than function", and because of the way Go does OO, anything that has that function works.
Yeah, you can have that. But the benefit of generics is that the "things that fit that function" are auto-generated.