What's the issue(s) with scope vars?

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Thu May 22 12:39:58 PDT 2014


On Thursday, 22 May 2014 at 19:36:06 UTC, Nick Sabalausky wrote:
> On 5/22/2014 3:31 PM, Dicebot wrote:
>> On Thursday, 22 May 2014 at 19:08:53 UTC, Nick Sabalausky 
>> wrote:
>>> I know there's been a lot of chatter about scope vars needing 
>>> work,
>>> what exactly is the deal with that? Isn't there a lib version 
>>> of
>>> scoped? Are there current problems with that?
>>
>> You speak about scope storage class (aka scope classes as in 
>> D1). It has
>> been deprecated and replaced by Phobos scoped.
>>
>> Recent chatter is about scope type qualifier which is supposed 
>> to
>> prohibit escaping references to variable making it only 
>> available in
>> current and nested scopes. There are many possible 
>> applications for that
>> - safe casting away for shared, safe rvalue references, 
>> efficient
>> reference counting and so on. It is currently present in the 
>> language
>> but has no actual implementation, being effectively a NO-OP.
>
> Is phobos scoped at least good enough for real-world use in the 
> meantime?
>
> Also, is this unimplemented scope type qualifier you speak of 
> going to basically replace phobos scoped?

First question - don't now for sure. It worked for me few times I 
have used it but there several bug reports in bugzilla with some 
nastiness.

Second question - that is something yet to investigate. Natural 
relation between those is that value captured by `scoped` should 
be qualified as `scope` to be reliably memory safe. Does that 
also mean that you can skip `scoped` altogether and release all 
scope variables at the end of scope automatically? Something yet 
to investigate.


More information about the Digitalmars-d mailing list