digitalmars.D.learn - indefinable type
- BCS (6/6) Feb 20 2006 dg is a delegate and must return a value of the same type as it self. Wh...
- Sean Kelly (3/7) Feb 20 2006 I don't think this is currently possible in D.
- Unknown W. Brackets (5/17) Feb 20 2006 I think you could use "static if (is(typeof(dg) T))" to do this, more or...
- BCS (9/31) Feb 21 2006 I did manage a hack around using a struct something like
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)
Feb 20 2006
BCS wrote: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;I don't think this is currently possible in D. Sean
Feb 20 2006
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)
Feb 20 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)
Feb 21 2006









Sean Kelly <sean f4.ca> 