Copying array with const correctness
Steven Schveighoffer
schveiguy at gmail.com
Wed Oct 8 15:54:16 UTC 2025
On Wednesday, 8 October 2025 at 07:46:32 UTC, Vindex9 wrote:
> On Wednesday, 8 October 2025 at 02:58:15 UTC, Steven
> Schveighoffer wrote:
>> My attempt:
>>
>> ```d
>> import std.traits;
>>
>> inout(T)[] copyArray(T)(inout(T)[] arr) {
>> alias M = Unqual!T;
>> ```
>
>
> Unfortunately, `Unqual` in your code doesn't do anything - the
> type `M` remains `T`. Apparently, some strange things are
> happening inside the template when it comes to constness.
You are right, I didn't think about the fact that `T` is going to
already be unmodified (since `inout` takes over the modifier).
So really, this isn't needed, you can just use T, and rely on the
explicit conversion at the end.
> Thank you, Steve.
I'm glad you were able to work it out.
-Steve
More information about the Digitalmars-d-learn
mailing list