BitArray - incomplete implementation?
Laeeth Isharc via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Jan 23 16:13:33 PST 2015
Hi.
Should the following code work?
import std.bitmanip;
import std.stdio;
import std.array;
import std.range:chain;
void test()
{
int[] a=[1,2,3,4,5];
int[] b=[5,4,3,2,1];
int[] c = chain(a,b).array; // chain two arrays of int
writefln("%s",c);
}
void test2()
{
BitArray a;
a.init([1,0,1,0]);
BitArray b;
b.init([0,1,0,1]);
BitArray[] d;
d~=a;
d~=b;
BitArray[] c=chain([a],[b]).array; // cannot chain two bitarrays
BitArray[] e=chain(d,d).array; // cannot chain two arrays of
bitarrays
writefln("%s",c);
}
int main(string[] args)
{
test();
test2();
return 1;
}
bitmanip.d(23): Error: template std.range.chain cannot deduce
function from argument types !()(BitArray, BitArray), candidates
are:
/usr/include/dmd/phobos/std/range.d(2493):
std.range.chain(Ranges...)(Ranges rs) if (Ranges.length > 0 &&
allSatisfy!(isInputRange, staticMap!(Unqual, Ranges)) &&
!is(CommonType!(staticMap!(ElementType, staticMap!(Unqual,
Ranges))) == void))
bitmanip.d(24): Error: template std.range.chain cannot deduce
function from argument types !()(BitArray[], BitArray[]),
candidates are:
/usr/include/dmd/phobos/std/range.d(2493):
std.range.chain(Ranges...)(Ranges rs) if (Ranges.length > 0 &&
allSatisfy!(isInputRange, staticMap!(Unqual, Ranges)) &&
!is(CommonType!(staticMap!(ElementType, staticMap!(Unqual,
Ranges))) == void))
bitmanip.d(24): Error: declaration bitmanip.test2.c is already
defined
bitmanip.d(25): Error: template std.range.chain cannot deduce
function from argument types !()(BitArray[], BitArray[]),
candidates are:
/usr/include/dmd/phobos/std/range.d(2493):
std.range.chain(Ranges...)(Ranges rs) if (Ranges.length > 0 &&
allSatisfy!(isInputRange, staticMap!(Unqual, Ranges)) &&
!is(CommonType!(staticMap!(ElementType, staticMap!(Unqual,
Ranges))) == void))
I cannot seem to concatenate - directly, or using chain - two
bitarrays, or two arrays of bitarrays.
More information about the Digitalmars-d-learn
mailing list