with (auto p = new ...)
andre via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Sep 23 13:16:28 PDT 2014
Yes, that is also working. As far as I remember (only my tablet
currently available) also this works:
Panel p;
with(p = new Panel ()) {}
Therefore it seems strange,the same does not work with auto.
Kind regards
André
On Tuesday, 23 September 2014 at 19:49:22 UTC, Graham Fawcett
wrote:
> Sorry, I sent that last message before I intended to.
>
> How about:
>
> auto b = new Button(); with (b) {
> ...
> }
>
> 'b' is explicitly outside of the scope of the 'with' block,
> which may not be what you intended. But you could use more
> braces to add an extra level of scope if that's an issue:
>
> ...
> text = "blah";
> {
> auto b = new Button(); with (b) {
> ...
> }
> }
> // b is no longer in scope
>
> Graham
>
>
>
>> On Tuesday, 23 September 2014 at 15:19:59 UTC, Andre wrote:
>>> Hi,
>>>
>>> I just wonder why "with (auto p = new ...)" is not working.
>>> It would be some syntax sugar in this scenario:
>>>
>>> with (auto p = new Panel())
>>> {
>>> parent = this;
>>> text = "bla";
>>> with (auto b = new Button())
>>> {
>>> parent = p; // Here p is needed
>>> text = "bla2";
>>> }
>>> }
>>>
>>> source\app.d(8): Error: expression expected, not 'auto'
>>> source\app.d(8): Error: found 'p' when expecting ')'
>>> source\app.d(8): Error: found '=' instead of statement
>>> ...
>>>
>>> Kind regards
>>> André
More information about the Digitalmars-d-learn
mailing list