On Tuesday, 12 January 2016 at 15:57:03 UTC, Marc Schütz wrote:
On Tuesday, 12 January 2016 at 15:41:02 UTC, ParticlePeter wrote:
I have a function type and variable and assign a function to it:

void function( int i ) myFunc;
myFunc = void function( int i ) { myCode; }

How would I declare an alias for void function( int i ) such that the case above would work like this:

// alias MF = void function( int i );  // not working
// alias void function( int i ) MF;  // not working

MF myFunc;
myFunc = MF { myCode };

Please, if possible, also show me where I should have found the answer (D Reference, Alis book, etc. )

This works for me:

alias MF = void function(int i); // works fine - what was your error?

void main() {
    import std.stdio;
    MF myFunc;
// you can also use the full `function(int i) { ... }` in the next line
    myFunc = (i) { writeln("i = ", i); };
    myFunc(42);
}

Not what I wanted, I wanted the parameter to be part of the alias:
myFunc = MF { ... }

I want to pass such a function to another function:

alias MF = void function(int i);
void otherFunc( void function( int ) mf );
otherFunc( MF { ... } ); // Getting Error: found '{' when expecting ','

Actually, I do use only one param, and not int as well, hence I would like the parameter list to be part of the alias.
Your example works though.

Reply via email to