Declare and Define Before Use? [rant]

Rubn where at is.this
Wed Apr 4 21:54:32 UTC 2018


On Wednesday, 4 April 2018 at 20:01:55 UTC, Ali wrote:
> On Wednesday, 4 April 2018 at 19:51:27 UTC, kdevel wrote:
>> On Wednesday, 4 April 2018 at 19:19:30 UTC, Ali wrote:
>> BTW: You can't write
>>
>>    void main ()
>>    {
>>       x.writeln;
>>       int x;
>>    }
>>    import std.stdio;
>>
>
> This is because x is not module scope
> you can do this
>
>    void main ()
>    {
>       x.writeln;
>
>    }
>
>    import std.stdio;
>    int x;

Cause there's no scope at the module level.


struct A
{
     A* a;

     ~this()
     {
         // use a
     }
}

void main()
{
     A b = A(&a);
     A a; // in this case "a" destructed before "b", but "b" uses 
"a"

}


Destruction and order of destruction becomes much more confusing. 
You also can't do scope(exit) at the module level for a reason. 
This mess shouldn't be allowed, it just makes it way worse to 
understand what is going on.



More information about the Digitalmars-d-learn mailing list