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