with (auto p = new ...)

Graham Fawcett via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Sep 23 12:49:21 PDT 2014


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