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