On 2011-01-28 13:31:58 -0500, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> said:
Today after work I plan to start making one pass through std.container.
After having thought of things for a long time, my conclusions are as
follows:
1. Containers will be classes.
2. Most of the methods in existing containers will be final. It's up to
the container to make a method final or not.
3. Containers and their ranges decide whether they give away references
to their objects. Sealing is a great idea but it makes everybody's life
too complicated. I'll defer sealing to future improvements in the
language and/or the reflection subsystem.
4. Containers will assume that objects are cheap to copy so they won't
worry about moving primitives.
Any showstoppers, please share.
Not my preferred choices (especially #1), but having containers in
Phobos will certainly be an improvement over not having them. So go
ahead!
About #4, it'd be nice to have the containers use move semantics when
possible even if they fallback to (cheap) copy semantic when move isn't
available. That way, if you have a type which is moveable but not
copyable you can still put it in a container. Does that makes sense?
--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/