bearophile wrote:
Andrei Alexandrescu:
As far as I can tell such changes of containers are a design-time
decision, and extremely rarely (never as far as I remember) a runtime
decision to hide behind a binary interface.
In your post there's lot of stuff to think about. I can see you are trying to
innovate, so here's a comment about data structures of the future. In Gcc 4.5
they have added a profile mode:
http://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html
It gives you simple suggestions, based on simple statistics collected at
run-time, about data structures choice.
Today data structures are mostly chosen at compile time by the programmer, but
once the runtime has those statistics collected at run-time, you can think of
feeding that data into the program itself at runtime, so data structures can
adapt themselves. This can be useful for programs that run on servers, for
minutes, hours or days, where they have to face different workloads as time
passes.
Bye,
bearophile
Good point, perfect. I agree with that, and I meant to massage that
point within the message. A structure that's an e.g. set that adapts its
strategy dynamically depending on load is a perfect example. I still
don't think that's the job of a hierarchy - it's the encapsulation of an
algebraic type together with a strategy for choosing the type currently
used.
Apologies for the dense message. I wanted to concentrate as much info in
as little time/space as possible.
Andrei