"inline" conversion of array to immutable
Jeff Thompson via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Apr 22 04:07:47 PDT 2016
On Friday, 22 April 2016 at 09:40:14 UTC, FreeSlave wrote:
> On Friday, 22 April 2016 at 09:25:32 UTC, Jeff Thompson wrote:
>> Hello. The following code compiles OK where func creates a
>> mutable array and main assigns it to an immutable variable:
>>
>> [...]
>
> Probably this is what you look for
> http://dlang.org/phobos/std_exception.html#.assumeUnique
OK, we lose the compiler check for correctness. What if I put
func directly in main with the hopes that the compiler will check
correctness and also inline the function? But it won't assign to
the immutable array. Why not? It's the same function.
void main(string[] args) {
int[] func(int x) pure {
int[] result = new int[10];
result[0] = x;
return result;
}
immutable int[] array = func(1);
}
More information about the Digitalmars-d-learn
mailing list