typeid() broken for interfaces?

pjmlp pjmlp at progtools.org
Sun Dec 2 14:11:57 PST 2012


On Sunday, 2 December 2012 at 19:26:47 UTC, Gor Gyolchanyan wrote:
> What's the logic in this behavior?
>
>
> On Sun, Dec 2, 2012 at 1:28 AM, Walter Bright 
> <newshound2 at digitalmars.com>wrote:
>
>> On 11/30/2012 9:04 PM, Gor Gyolchanyan wrote:
>>
>>> interface I { }
>>> class C: I { }
>>>
>>> I object = new C;
>>> assert(typeid(object) == typeid(C)); // fails
>>>
>>> Is this normal or is it a bug?
>>>
>>
>> Normal, since the typeids of interfaces are not the same as 
>> for classes.
>>
>>
>>  Note, that the same works fine in case of a base class, 
>> rather then an
>>> interface.
>>>
>>
>> That works, because classes are classes. Classes are not 
>> interfaces.

Because interfaces don't extend object?


More information about the Digitalmars-d mailing list