Developing a plan for D2.0: Getting everything on the table

Bill Baxter wbaxter at gmail.com
Mon Jul 27 09:54:39 PDT 2009


On Mon, Jul 27, 2009 at 7:48 AM, Andrei
Alexandrescu<SeeWebsiteForEmail at erdani.org> wrote:
> Leandro Lucarella wrote:
>>
>> Andrei Alexandrescu, el 27 de julio a las 07:59 me escribiste:
>>>>
>>>> For example, should the author of a container library prefer classes or
>>>> structs?
>>>
>>> I've been struggling with this forever. I don't know. I don't even know
>>> whether reference or value semantics are best for containers. I don't
>>> know whether abstract container interfaces and container-independent
>>> code are a net win; experience with STL seems to say "don't" and
>>> experience with Java seems to say "ho-hum".
>>
>> About values vs. reference semantics, I think reference is the best.
>> Containers usually are big, and you don't want to copy them arround.
>> I find myself using lots of references to pass containers arround in C++
>> and almost never use the copy() method of Python containers, so based on
>> *my* experience, I'd say that reference as the default is the best
>> approach.
>
> Sounds convincing.

That's exactly right except for the times when it isn't and what you
want is value semantics.

I've just finished recently refactoring some C++ code that wasn't
designed with copying in mind.  Changing all the "float* data; int
data_length;" members into std::vectors did the trick.  The data they
contained wasn't particularly large, and there was no real need to
introduce the complexity that sharing it between copied instances
would have created.

--bb



More information about the Digitalmars-d mailing list