https://issues.dlang.org/show_bug.cgi?id=23926
Walter Bright <bugzi...@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzi...@digitalmars.com Resolution|--- |LATER --- Comment #3 from Walter Bright <bugzi...@digitalmars.com> --- You're right, it's about the non-transitivity of C const. D's choices are: 1. compile correct C code, and also compile some incorrect C code 2. not compile some correct C code, not compile incorrect C code 3. implement non-transitive const in D (1) is the most pragmatic choice. Maybe eventually we can do (3), but it's a low priority. Note that any hand-translated C code to D has the same issue. Improving the error message also would be rather clumsy. I wish I had better news on that. BTW, `const struct Foo*` in C looks like const(Foo)* in D, while `const Foo*` in D is actually `const(Foo*)`. I'm going to resolve this as "LATER". --