Conditional compilation inside an array initializer

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jan 18 16:41:34 PST 2016


On 01/18/2016 04:38 PM, Adam D. Ruppe wrote:
> On Tuesday, 19 January 2016 at 00:33:21 UTC, Johan Engelen wrote:
>> Is it possible to do conditional compilation inside an array initializer?
>
> No, but you might break it up:
>
> enum inttable_1 = [1,4];
> version(smth)
>      enum inttable_middle = [5,6];
> else
>      enum inttable_middle = [];
> enum inttable_2 = [8, 1345];
>
> int[] inttable = inttable_1 ~ inttable_middle ~ inttable_2;

I was writing something similar:

int[] table;

// Alternatively, consider 'shared static this()'
static this() {
     const tens  = [ 10, 20 ];
     const hundreds = [ 100, 200 ];
     const thousands = [ 1000, 2000 ];

     table ~= tens;

     version (smth) {
     table ~= hundreds;
     }

     table ~= thousands;
}

version = smth;

void main() {

     import std.stdio;
     writeln(table);
}

Ali



More information about the Digitalmars-d-learn mailing list