Is there a more elegant way to do this in D?
Q. Schroll
qs.il.paperinik at gmail.com
Sun Apr 11 21:22:52 UTC 2021
On Thursday, 8 April 2021 at 18:06:25 UTC, Meta wrote:
> On Thursday, 8 April 2021 at 18:01:56 UTC, Meta wrote:
>> On Thursday, 8 April 2021 at 12:19:29 UTC, WebFreak001 wrote:
>>>
>>> ```d
>>> string to01String(int[] x) @safe
>>> {
>>> auto conv = x.to!(ubyte[]); // allocates new array, so
>>> later cast to string is OK
>>> conv[] += '0'; // assume all numbers are 0-9, then this
>>> gives the correct result
>>> return (() @trusted => cast(string)conv)();
>>> }
>>> ```
>>
>> The @trusted lambda can also be replaced with
>> [std.exception.assumeUnique](https://dlang.org/library/std/exception/assume_unique.html).
>
> Never mind me, assumeUnique is @system (or at least it's
> inferred as @system), and anyway, you can't implicitly convert
> `immutable(ubyte)[]` to `immutable(char)[]`.
It has to be. It's not `@safe` quite obviously.
More information about the Digitalmars-d-learn
mailing list