On Saturday, 29 December 2012 at 14:23:09 UTC, Andrei
Alexandrescu wrote:
On 12/29/12 4:00 AM, Peter Alexander wrote:
On Saturday, 29 December 2012 at 03:28:47 UTC, Andrei
Alexandrescu wrote:
On 12/28/12 9:21 PM, Peter Alexander wrote:
I'm already assuming 64-bit. What I'm saying is that 64-bit
sometimes
isn't even enough (for example in the case of a permutations
range). I'm
asking if allowing length to return BigInt would be
reasonable.
I think it would complicate a lot of things for the benefit
of a few
cases.
I agree, but the range of permutations will be longer than
2^64 on
occasion, so what do we do?
* Don't provide .length at all
* Provide it as size_t, and assert on overflow
* Provide it as size_t, and silently overflow
I'd say give it a different name, i.e. bigLength.
But then the range doesn't have a length, even though it would be
useful to have it in a lot of cases.
How about, have .length, and allow it to dangerously overflow,
but also provide .bigLength, which returns a BigInt for when
people need it?