digitalmars.D.learn - confusion between conversion between member function delegate and property call
- Simon Hudon (21/21) Aug 23 2006 I have the following code:
- Tom S (2/29) Aug 23 2006 void delegate () a = &c.memberFunction;
I have the following code:
class MyClass {
public:
void memberFunction ()
{ v = 3;
}
private:
int v;
}
void main() {
auto c = new MyClass;
void delegate () a = c.memberFunction; // Produces an error voids have no
value
}
What I think is appening is that DMD interprets c.memberFunction as a property
call expression that it can then put into a delegate as a lazy evaluated
expression. Instead, what I would like it to do is that a points to a call of
memberFunction on the object referenced by c.
Please tell me if you know an elegant way to do it.
Thanks
Simon Hudon
Aug 23 2006
Simon Hudon wrote:
I have the following code:
class MyClass {
public:
void memberFunction ()
{ v = 3;
}
private:
int v;
}
void main() {
auto c = new MyClass;
void delegate () a = c.memberFunction; // Produces an error voids have no
value
}
What I think is appening is that DMD interprets c.memberFunction as a property
call expression that it can then put into a delegate as a lazy evaluated
expression. Instead, what I would like it to do is that a points to a call of
memberFunction on the object referenced by c.
Please tell me if you know an elegant way to do it.
Thanks
Simon Hudon
void delegate () a = &c.memberFunction;
Aug 23 2006








Tom S <h3r3tic remove.mat.uni.torun.pl>