mixin template's alias parameter ... ignored ?

someone someone at somewhere.com
Tue Jul 13 02:52:47 UTC 2021


On Tuesday, 13 July 2021 at 02:34:07 UTC, Mike Parker wrote:
> On Tuesday, 13 July 2021 at 02:22:46 UTC, Mike Parker wrote:
>> On Tuesday, 13 July 2021 at 01:03:11 UTC, someone wrote:
>>>
>>> Being *local* to ... ain't imply visibility too regardless 
>>> scope not being a visibility attribute ? I mean, scope is 
>>> restricting the variable to be leaked outside the 
>>> function/whatever and to me it seems like restricted to be 
>>> seen from the outside.
>
> And I meant to add... local variables are by default visible 
> only inside the scope in which they are declared and, by 
> extension, any inner scopes within that scope, and can never be 
> visible outside.
>
> ```d
> {
>     // Scope A
>     // x can never be visible here
>     {
>         // Scope B
>         int x;
>         {
>             // Scope C
>             // x is visible here
>         }
>     }
> }
> ```

Yes. This one I understood from the beginning -it was on Ali's 
book and previously I remember seeing it in Andrei's one too IIRC.

http://ddili.org/ders/d.en/name_space.html

The thing that I supposed started my confusion was the lack of a 
statement for it, nothing more; something like: whatever int x; 
... it was more of form than concept.

> The only possible use for your concept of scope applying to 
> visibility would be to prevent x from being visible in in Scope 
> C. But since we already have the private attribute, it would 
> make more sense to use that instead, e.g., `private int x` 
> would not be visible in scope C.

No. My concept is/was the same that the one above. It was form 
not function.

> I don't know of any language that has that kind of feature, or 
> if it would even be useful. But at any rate, there's no need 
> for a visibility attribute to prevent outer scopes from seeing 
> a local variable, as that's already impossible.

Me neither.



More information about the Digitalmars-d-learn mailing list