indefinable type

BCS BCS_member at pathlink.com
Tue Feb 21 09:53:57 PST 2006


I did manage a hack around using a struct something like

struct foo
{
	foo delegate() dg;
}
foo dgv;
while(dgv.dg !is null)dgv = dgv.dg();


If function ptrs are used a cast to void* works.

Unknown W. Brackets wrote:
> I think you could use "static if (is(typeof(dg) T))" to do this, more or 
> less.  Not sure, would have to mess with it.
> 
> Read more here:
> http://www.digitalmars.com/d/expression.html#IsExpression
> 
> -[Unknown]
> 
> 
>> dg is a delegate and must return a value of the same type as it self. 
>> What
>> should "some_type" be to make this work?
>>
>> some_type delegate() dg;
>>
>> /*********/
>> while(   (dg = dg())    !is null){}
>>
>>
>> (in case you are wondering this would act as a finite state machine)
>>
>>



More information about the Digitalmars-d-learn mailing list