Can I work out error: reinterpreting cast from const(ubyte)* to const(uint)* is not supported in CTFE?
Jonathan M Davis
newsgroup.d at jmdavisprog.com
Mon May 21 19:56:03 UTC 2018
On Monday, May 21, 2018 18:13:26 Dr.No via Digitalmars-d-learn wrote:
> I'm trying to do some hashing at compile time with xxhash
> algorithm but I get this error:
>
> ..\..\..\AppData\Local\dub\packages\xxhash-master\xxhash\src\xxhash.d(39,3
> 7): Error: reinterpreting cast from const(ubyte)* to const(uint)* is not
> supported in CTFE
>
> this is line 39
>
> (https://github.com/repeatedly/xxhash-d/blob/master/src/xxhash.d#L39):
> > auto srcPtr = cast(const(uint)*)source.ptr;
>
> I'm on Windows 10 64-bit machine.
You can't do any kind of pointer manipulaton or related casts in CTFE. So,
you can't reinterpet one type as another at compile time. You would need a
different hashing algorithm for CTFE - e.g.
if(__ctfe)
{
... do something to calculate a hash
}
else
{
... calculate the hash the current way
}
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list