What is this strange alias syntax?

Andrej Mitrovic none at none.none
Fri May 20 20:12:20 PDT 2011


Taken from the docs:

alias int func(int);
void main()
{
    if ( is(func[]) )               // not satisfied because arrays of
        writeln("satisfied");    // functions are not allowed
    else
        writeln("not satisfied");
}

It will print not satisfied. But I'm not sure what func is supposed to be? An alias.. to what? I can't declare variables of its type:
    func x;
    error:  variable test.main.x cannot be declared to be a function

Of course if you write the alias the usual way it will print 'satisfied'. Nothing strange about having an array of functions in D:

alias int function(int) func;
void main()
{
    if ( is(func[]) )
        writeln("satisfied");
    else
        writeln("not satisfied");
}


More information about the Digitalmars-d-learn mailing list