Delayed const variable initialization
Yuxuan Shui via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Jul 13 02:08:13 PDT 2015
On Monday, 13 July 2015 at 09:05:25 UTC, ketmar wrote:
> On Mon, 13 Jul 2015 08:56:05 +0000, Yuxuan Shui wrote:
>
>> On Monday, 13 July 2015 at 07:43:16 UTC, Marc Schütz wrote:
>>> On Monday, 13 July 2015 at 07:11:33 UTC, Yuxuan Shui wrote:
>>>> [...]
>>>
>>> const(A) = condition ? func1() : func2();
>>
>> Well I should have used a more complex example:
>>
>> const(A) x;
>> if (condition) {
>> //Do some really complicated stuff here x = func1(results);
>> } else {
>> //Here too x = func2(results);
>> }
>
> as i wrote, what you really want is the ability to assign to
> `const`, which is forbidden in D. initialization of `x` happens
> at the declaration site: `const(A) x = A.init;`
>
> so, no, the design of `const` will not allow you to assign to
> consts. remember, it's not c++ const. chances are, you don't
> need that `const` at all -- as you clearly wants to modify a
> variable.
No! What I want to do is to assign to 'const' only ONCE. So it is
basically an initialization.
What I really want is to detach initialization from definition.
More information about the Digitalmars-d-learn
mailing list