cannot alias array ;/
    Dukc via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Sat Jan 21 00:21:31 PST 2017
    
    
  
On Thursday, 19 January 2017 at 08:06:04 UTC, ketmar wrote:
> alias is not a macro, it is alias to *symbol*. only symbol, not 
> any arbitrary expression.
In fact, it can nowadays be. You just have to mark it so, with a 
lambda:
void main()
{   import std.stdio;
     auto myArray = [2, 3, 5, 6];
     int k = 2;
     alias a = () => myArray[k];
     writeln(a());
     k = 3;
     writeln(a());
}
//result:
//5
//6
The downside with this (and function pointers and delegates) 
compared to defining functions is that you cannot call it without 
parenthesis.
    
    
More information about the Digitalmars-d-learn
mailing list