On Sun, 09 Jan 2011 11:06:22 -0500, Peter Alexander <[email protected]> wrote:

I remember there was a discussion a little while back about how Phobos would assume that structs are cheap to copy, and would simply pass them by value.

Is this assumption now "the D way"? Should we all just pass structs by value, assuming cheap copy construction?

The discussion was about assumptions that ranges will make on their elements. Essentially, ranges will expect their element types to be cheaply copied.

This does not mean that all structs need be cheaply copyable, nor that ranges cannot be used with expensive-to-copy element types. It just means that for the algorithms defined on ranges, the complexity stated depends on the elements being cheaply copyable.

If so, I think this needs to be documented somewhere (assuming it isn't already), because it's a radical departure from C++, and also from most other languages (where everything is a reference type). People need to be aware of this.

AFAIK, there has not been a conclusion to this. Once there is, if cheap copy assumption is the result, then I expect documentation to reflect that (probably at top of std.range and std.algorithm).

-Steve

Reply via email to