On Thursday, 3 February 2022 at 01:51:34 UTC, Basile B. wrote:
On Thursday, 3 February 2022 at 01:39:33 UTC, forkit wrote:
On Wednesday, 2 February 2022 at 23:30:50 UTC, H. S. Teoh wrote:
[...]

that explains ldc perhaps (although i don't really get it. It's cast to mutable and being assigned to mutable.

in any case... ldc doesn't like it, but dmd is fine with this ??

your cast from immutable to mutable is an undefined behavior, this may work or not.

Note that casting away a const qualifier and then mutating is undefined behavior, too, even when the referenced data is mutable. This is so that compilers and programmers can make assumptions based on const alone. For example, here it may be assumed that f does not alter x:

(from https://dlang.org/spec/const3.html#removing_with_cast)

the D safe way :

```
void main() @safe
{
    char[] palindrome = "able was I ere I saw elba".dup;
    writeln(palindrome);
    writeln(palindrome.reverse);
}
```

Reply via email to