CT BitArray

Johan j at j.nl
Sun Apr 5 19:59:41 UTC 2020


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?

https://github.com/ldc-developers/druntime/pull/182



More information about the Digitalmars-d-learn mailing list