New feature proposal: "initialization scope"

dennis luehring dl.soluz at gmx.net
Thu May 16 01:25:20 PDT 2013


Am 16.05.2013 10:14, schrieb TommiT:
> On Thursday, 16 May 2013 at 08:02:05 UTC, Jacob Carlborg wrote:
>> Use a module constructor:
>>
>> static this () { }
>>
>> http://dlang.org/module.html#staticorder
>
> On Thursday, 16 May 2013 at 08:01:44 UTC, Timothee Cour wrote:
>> this works:
>>
>>
>> import std.stdio;
>> import std.conv;
>> const string[100] int__str;
>> const int[string] str__int;
>>
>> static this(){
>>     for (int i = 0; i < 100; ++i)
>>     {
>>         auto str = to!string(i);
>>         int__str[i] = str; // ERROR: Can't modify const
>>         str__int[str] = i; // ERROR: Can't modify const
>>     }
>> }
>
> But I'm talking about function local data. The initialization of
> that data might depend on the arguments passed to the function.
>

so youre example code isn't showing what you try to reach - makes it 
hard to understand/help - its even unclear if your string[100], 
int[string] is just an example or a real problem, or if your < 100 is 
variant or const - come up with an clear example

the normal way of doing stuff like this in C++,Java and D would be
and helper class with const members and const methods for access











More information about the Digitalmars-d mailing list