On 7/10/12 11:03 AM, Timon Gehr wrote:
On 07/10/2012 05:01 PM, Andrei Alexandrescu wrote:
On 7/10/12 10:32 AM, kenji hara wrote:
OK. I know the past discussion about 'sealed container' so I can agree
with your argument.
Then I'll close the pull request.
Sounds good for now but let's keep in mind the possibility of
restricting ref returns. At that point we can "open up" ref returns in
std.container.
Andrei
Would that apply to all ref returns or would there be an additional
attribute that allows to explicitly restrict them?
If we decide to introduce the feature it would apply to all ref
parameters and results. That means functions receiving a ref parameter
cannot save its address anywhere, and that callers of functions that
return a ref result cannot save the address beyond the function call.
Still trying to figure out whether this is too restrictive. My opinion
is that that's sensible because many uses opposing it are antipatterns
anyway. For example, if a function sneaks away the address of something
it better makes that clear in the signature by requiring a pointer in
the first place.
Andrei