On Saturday, 13 September 2014 at 01:49:05 UTC, Manu via Digitalmars-d wrote:
I'm not convinced this is a good change.
It sounds like you're just trading one problem with another more sinister
problem...


Ok, I thought about it some more. I'm still not convinced completely, but I'm warming up to the idea of making scope a type modifier. However, Ivan's objections need to be addressed.

Maybe let's start with a list of problems of the type modifier way. So far:

* What is ElementType!(ByLineImpl!(char, "\n")) in the example from the wiki page [1]?
* Should Unqual!T strip `scope`?

Anything else? How can we solve these problems?

Another argument against storage class is a syntactical ambiguity in conncection with methods:

    struct S {
        scope!this int* foo() scope;
    }

It's ambiguous whether any given scope keyword applies to the return value or `this`. One could argue though that this is a consequence of the general function attribute problem and should preferably be fixed there. (`ref` doesn't have this problem because it cannot apply to `this`.)

[1] http://wiki.dlang.org/User:Schuetzm/scope#scope.21.28const_....29

Reply via email to