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/

Reply via email to