Yeah I was referring to something similar to what C# has (aside from the lack of boxing).

On 6/12/2011 6:46 PM, Andrei Alexandrescu wrote:
On 6/12/11 8:28 PM, Jonathan M Davis wrote:
They aren't virtual. For an interface to work, it has to be virtual. structs are value types, not reference types. They have no virtual table and have no
polymorphism.

Why would they need to be virtual? They obviously aren't in C#, but they still work pretty well (e.g. foreach loops work with List<T>.Enumerator, which is a struct but which can be treated as the IEnumerator<T> interface), right?

He must be referring to nominal conformance. It's been discussed many times. There are important disadvantages (e.g. you can't "implement" a type alias) but there are advantages too.
Ultimately we never got around to it.

Andrei

Haha ok, that's a good reason in its own way, thanks. :)

Reply via email to