On Friday, 29 July 2022 at 21:56:20 UTC, Andrey Zherikov wrote:
In the example below `func` changes its `const*` argument. Does this violates D's constness?
It's smart to use `delegate`, but `immutable` doesn't necessarily mean `const`. So if we use `const char`:
```d struct S { char s; void delegate(char s) update; } void func(const S* s) { writeln(*s); s.update('D'); writeln(*s); } import std.stdio; void main() { auto s = S('C'); s.update = (_) { s.s = _; }; writeln(s); func(&s); writeln(s); } /* Prints: S('C', void delegate(char)) const(S)('C', const(void delegate(char))) const(S)('D', const(void delegate(char))) S('D', void delegate(char)) */ ``` SDB@79