Arbitrary Size Integer Arrays
Denis Koroskin
2korden at gmail.com
Wed Sep 23 12:20:56 PDT 2009
On Tue, 22 Sep 2009 00:03:28 +0400, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> dsimcha wrote:
>> I'm thinking it might be useful to have a library type that allows for
>> arbitrary size integers <= 64 bits (128 if ucent is ever implemented)
>> to be
>> packed into an array. This might be nice when you want a huge array of
>> them,
>> the size you actually need is somewhere in between two native sizes,
>> and you
>> care more about space/cache efficiency than raw CPU cycles. For
>> example,
>> let's say you wanted an array of N 19-bit integers. You'd make an
>> array of
>> uints (32-bit) with ceil(N * 19 / 32) elements, and when it was
>> indexed, you'd
>> do a bunch of modulus and bit shifting to get the right 19 bits out of
>> that
>> block of memory, and return a uint. It would be slow as molasses, but
>> really
>> space efficient, which would in certain cases be a reasonable tradeoff.
>> Has anyone implemented, or considered implementing this before? If
>> not, if I
>> implemented it well and submitted it as an enhancement, would it be a
>> reasonable thing to include in std.array?
>
> I think that would be a nice addition. We haven't established some
> general rules for containers. Values or references? In the latter case:
> Classes or structs? If classes: hierarchy or largely independent classes?
>
> Andrei
You can't implement containers using structs unless default ctors for them
are allowed.
Is it ever going to be fixed?
More information about the Digitalmars-d
mailing list