On Wed, 21 Nov 2012 12:32:24 -0000, Regan Heath <re...@netmail.co.nz> wrote:

On Wed, 21 Nov 2012 12:30:08 -0000, Regan Heath <re...@netmail.co.nz> wrote:

On Wed, 21 Nov 2012 12:02:45 -0000, Jack Applegame <jappleg...@gmail.com> wrote:

void foo(ref int a) { a--; }
struct functor(A...) {
  void function(A) functor;
}
functor!int f;    // functor!(ref int) - wrong
f.functor = &foo; // Error: cannot implicitly convert expression (& foo) of type void function(ref int a) to void function(int)

Hmm.. well I got past your initial problem, but I have a new one..

alias void function(ref int) funcType;

void foo(ref int a) { a--; }

struct functor(A...) {
   A func;
}
void main()
{
   functor!funcType f;
   f.func = &foo; //Error: f.func is not an lvalue
}

Just realised what is happening here. "f.func = " is trying to call the function, and assign &foo to the "void" result.

Or not, duh! "A..." grr.

alias void function(ref int) funcType;

void foo(ref int a) { a--; }

struct functor(A...) {
  A[0] func;
}
void main()
{
  functor!funcType f;
  f.func = &foo;
}

R

--
Using Opera's revolutionary email client: http://www.opera.com/mail/

Reply via email to