constant pointer failing to compile
Jacob Shtokolov
jacob.100205 at gmail.com
Thu Apr 6 20:23:29 UTC 2023
On Thursday, 6 April 2023 at 00:46:26 UTC, Josh Holtrop wrote:
> I am trying to port a small C project to D and am getting a
> compilation error I don't understand.
It seems like the compiler is just missing some type hints. Try
this:
```d
import std.stdio;
__gshared immutable ubyte[4] data = [1, 2, 3, 4];
__gshared immutable ubyte* p = data.ptr;
int main()
{
writeln("*p = ", *p);
return 0;
}
```
Look how I provided the `ubyte[4]` hint to the compiler so it
thinks that it's a constant.
I'm not sure why this happens, but sometimes the compiler can't
deduce static arrays, especially if you're explicitly saying that
they're not static (`ubyte[]`).
More information about the Digitalmars-d-learn
mailing list