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/

Reply via email to