Array of BitArrays definition compiles in DMD but not in GDC.
John Colvin via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Oct 9 00:08:13 PDT 2015
On Thursday, 8 October 2015 at 21:40:02 UTC, TheGag96 wrote:
> In my code I'm passing an array of BitArrays to a constructor
> like this (though mostly as a placeholder):
>
> Terrain t = new Terrain(1, 15, [
> BitArray([1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]),
> BitArray([1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1]),
> BitArray([0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1]),
> BitArray([0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1]),
> BitArray([0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1]),
> BitArray([1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1]),
> ]);
>
> The code compiles fine when using DMD 2.068.1 but GDC 5.2.1, I
> get this error for every line:
>
> error: cannot implicityly convert expression ([stuff]) of type
> int[] to ulong
>
> Why does this compiler difference exist and how do I get around
> it? Thanks!
gdc is a bit out of date at the moment. If you do something like
this:
auto bitArray(bool[] ba) pure nothrow
{
BitArray tmp;
tmp.init(ba);
return tmp;
}
auto bitArray(void[] v, size_t numbits) pure nothrow
{
BitArray tmp;
tmp.init(v, numbits);
return tmp;
}
then replace all your calls to the constructor BitArray with
bitArray, things should work OK for you.
More information about the Digitalmars-d-learn
mailing list