Tango BitArray Initialization
Sean Kelly
sean at f4.ca
Sun Feb 11 00:28:31 PST 2007
Colin Huang wrote:
> When reading the Tango documentation, I came across this piece of code:
>
> import tango.core.BitArray;
>
> void main()
> {
> BitArray bitbag1 = bits( 1,0,1,1,1,0 );
> // or
> BitArray bitbag2( 1,0,1,1,1,0 );
> }
>
> The documentation says that "bitbag2 is initialized such that it uses a special
> opCall overload for the BitArray".
>
> Now the problem is that when I look at the source code, I don't see any overload
> of opCall for BitArray, or any definition for the bits function. Am I
> missing anything here?
Nope. The documentation for tango.core was the first to be written an
as a result it may be a bit inaccurate in places. It would be easy to
provide such a function however... something like this:
BitArray bits( bool[] mask ... )
{
BitArray temp;
temp.length = mask.length;
foreach( pos, val; mask )
temp[pos] = val;
return temp;
}
It may be even better to simply make this a ctor for BitArray, so:
auto b = BitArray( 1, 0, 1, 0 );
> BTW, is the last line legal D code at all? It doesn't look like it's gonna
> compile (to me, at least).
The last line doesn't seem correct. I'll give the docs a look tomorrow.
Sean
More information about the Digitalmars-d-learn
mailing list