On Thu, 20 Jan 2011 02:01:26 -0500, Mandeep Singh Brar
<mand...@brars.co.in> wrote:
"This would be easily resolved if interfaces were known to be Objects. "
But shouldnt this be the case, because there would be nothing called as
an
Interface which can be pointed to; it would be an Object which is
implementing an
interface which is being pointed to. So shouldnt Interfaces be Objects
too.
Otherwise, wouldnt it defeat the purpose of having Object as the base
class for
everything.
The issue is COM interfaces. What bugs me about it is, whether an
interface derives from IUnknown is known at compile time. I don't think
it's possible to define an interface that *doesn't* derive from IUnknown
that is not a D Object. I believe the compiler even handles IUnknown
interfaces differently.
I think the problem is that COM support was added when compile-time
functionality was in its infancy. There are quite a few legacy problems
due to that. For instance, the builtin array sort routine does not use
compile-time information.
It would be nice to fix this problem, but I'm not sure how willing Walter
is to do it. For sure, we need a solution to the opEquals problem.
-Steve