OpEquals and Interfaces
Steven Schveighoffer
schveiguy at yahoo.com
Tue Apr 13 16:57:36 PDT 2010
On Tue, 13 Apr 2010 19:47:13 -0400, Jason House
<jason.james.house at gmail.com> wrote:
> Steven Schveighoffer Wrote:
>
>> On Tue, 13 Apr 2010 15:50:36 -0400, Christoph Mueller
>> <ruunhb at googlemail.com> wrote:
>>
>> > I'm currently writing a library in D2 which uses intensively
>> interfaces
>> > and i meet a problem by overloading the opEquals Operator.
>> >
>> > In some of my implementations i want to compare an object through an
>> > interface of another instance
>> >
>> > Unfortanetly, the opEquals Operator uses only Object parameters and
>> > according to the current DMD-Compiler it's not possible to cast
>> implicit
>> > an Interface to an Object. (Got a nice compiler error)
>> >
>> > Is there any reason to forbid implicit downcasting from any interface
>> to
>> > Object?
>>
>> Any good reason? No.
>>
>> But the stated reason is usually that interfaces don't necessarily have
>> to
>> be Objects, they can be COM objects, which 1) has no bearing in some
>> OSes,
>> and 2) does anyone use this feature?
>
> It could also be a C++ class
>
C++ classes are already tagged with extern(C++) (i.e. there's a difference
the compiler can grip to make it behave differently)
Maybe that's the solution, make COM solutions extern(COM), or @COM or
something. That's fine also. Anything to then allow the compiler to
assume unadorned interfaces are D objects.
-Steve
More information about the Digitalmars-d
mailing list