On 2010-05-25 19:18:43 -0400, bearophile <[email protected]> said:
Andrei Alexandrescu:
any container must be a reference type, whether implemented as a class
or struct.<
This probably makes their usage simpler, so this can be the right
decision. But then you can't define something like a TinyHashSet or a
StaticBitSet that are better allocated on the stack...
Well, in a way I think you can, but you have to stretch the definition
a bit. A value-type container you can move but can't copy (because you
used "@disable this(this)") is semantically indistinguishable to a
reference-type container with a unique non-copiable (but moveable)
reference. The only problem is that most algorithms probably won't work
with such a thing, they'll expect a copy of the reference right in
their function arguments.
This does bother me a little. That it allows statically allocated
collections is something I like a lot of the C++ container model.
--
Michel Fortin
[email protected]
http://michelf.com/