On Wednesday, 31 October 2018 at 23:14:08 UTC, Bastiaan Veelo
wrote:
Currently, BitArray is not usable at compile time, so you
cannot do
```
enum e = BitArray([1, 1, 1, 0]);
```
This gives
/dlang/dmd/linux/bin64/../../src/phobos/std/bitmanip.d(1190):
Error: `bts` cannot be interpreted at compile time, because it
has no available source code
IIUC, that is because `bts` comes from core.bitop but no source
code is there. I am guessing these are filled in by compiler
intrinsics or the like, and they are unavailable at CT, correct?
I suppose that alternative implementations of `btc`, `bts`,
`btr`, `bsf` and `bt` could exist that do not use the runtime
that could be used if(__ctfe) in the implementation of
BitArray, that would make the above code work. Is this
feasible? Is there precedent in phobos? Are there complications?
Thanks!
Oh that ... actually I can fix that with a small patch to dmd.
Tell me which version are you using and I'll make it for you.
Cheers,
Stefan