typeof(t) not working correctly?

Robert Jacques sandford at jhu.edu
Sun Dec 26 23:31:53 PST 2010


On Sun, 26 Dec 2010 22:48:42 -0700, %u <wfunction at hotmail.com> wrote:

> Hi,
>
> I'm running this code below, and it returns an array of length zero for  
> both
> print statements. Is this a bug, or am I missing something?
>
> Thank you!
>
>
>
> private import std.stdio;
> private import std.traits;
>
> class Temp
> {
> 	public int base1;
> 	public void foo() { writeln("foo base called"); }
> }
>
> class Temp2 : Temp
> {
> 	public int derived1;
> 	public override void foo() { writeln("foo derived called"); }
> }
>
> void main()
> {
> 	Temp t = new Temp2();
> 	writeln(typeid(t).offTi().length); //Prints 0
> 	writeln(typeid(t).getMembers(null).length); //Prints 0
> }

typeid is working correctly, (it simply returns the TypeInfo for a type),  
but it is a well known issue that the offset type info array is not  
populated. It is bug 1348  
(http://d.puremagic.com/issues/show_bug.cgi?id=1348). You can vote it up  
in Bugzilla if you'd like. In general, questions like this should be sent  
to D.learn, and I also generally recommend doing a quick search in  
Bugzilla just to see if you get a hit against a known issue.


More information about the Digitalmars-d mailing list