QUOTE (sun4384 @ Jan 3 2009, 23:10)

The idea of finite length bit_array is problematic, because:
1. some bit_arrays are inherently infinite length, like bit_array_true for example. Valid index range is all non-negative integer.
Incorrect. The maximum valid index for that class is the largest positive
t_size t_ssize value (see bit_array::find()).
QUOTE (sun4384 @ Jan 3 2009, 23:10)

2. some bit_arrays are defined using other bit_arrays, like bit_array_and. You have to define the behavior of merging two bit_arrays of different lengths. Moreover, what to do with bit_array_not?
The bit_array classes that perform logical operations on other bit_arrays are examples for bit_array implementation that support arbitrary length which I mentioned before. Naturally, their actual valid index range is the intersection of the valid index ranges of their arguments.
QUOTE (sun4384 @ Jan 3 2009, 23:10)

3. there are many SDK methods that takes bit_array objects as parameter, and it's not possible to pass "the context" together without changing the method signature.
When you use a bit_array to select a subset of a list, the required length of the bit_array is the length of the list, unless the method in question allows to specify a range, in which case it may be less.
QUOTE (sun4384 @ Jan 3 2009, 23:10)

Beside, why are two separate bug reports merged? You may also want to address the first bug report.
They really are the same thing. See my answer to 1. above, infinite is not a valid index for bit_array_one.
Edit: Fixed typo.