Hacker News new | ask | show | jobs
by AnimalMuppet 3992 days ago
> Yeah, that would be Concepts. IIRC, C++ doesn't have them landed yet.

I also believe that C++ doesn't have them yet.

> But the benefit of generics is that the "things that fit that function" are auto-generated.

But because of the way that Go interfaces are in essence duck typed, "things that fit that function" are also auto-generated, other than having to specify the interface that must be satisfied. To me, this seems like no more work than specifying the C++ concept. (Or am I still missing something?)

1 comments

>But because of the way that Go interfaces are in essence duck typed, "things that fit that function" are also auto-generated, other than having to specify the interface that must be satisfied. To me, this seems like no more work than specifying the C++ concept. (Or am I still missing something?)

No, you have to write their code (concrete implementation for a new type) manually.

The only thing that's automatic is that the new implementation is "registered" as compatible with the interface without you having to explicitly declare it (e.g. not like Java that needs you to write "extends IFoo").

Sorry, I'm not trying to be dense, but:

> No, you have to write their code (concrete implementation for a new type) manually.

Say we're talking about a sort function. Are you saying that I have to write both sort(Foo) and sort(Bar), rather than simply writing sort(SomeInterfaceSharedByFooAndBar)?

I presume you're not just saying that I have to write the code for Foo and Bar; I don't know of anything that will save me from that.