"with" should be deprecated with extreme prejudice

Bill Baxter wbaxter at gmail.com
Mon May 18 13:26:59 PDT 2009


On Mon, May 18, 2009 at 1:14 PM, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> Nick Sabalausky wrote:
>>
>> "Leandro Lucarella" <llucax at gmail.com> wrote in message
>> news:20090518141908.GB9277 at burns.springfield.home...
>>>
>>> bearophile, el 18 de mayo a las 04:33 me escribiste:
>>>>
>>>> Andrei, I agree that "with" is dangerous when it shadows outer names
>>>> (Python designers have not added a "with" because of this).
>>>
>>> They did, but with different semantics =)
>>> It's used for RAII (I guess you already know that, but maybe other people
>>> don't).
>>>
>>
>> You mean like C#'s "using"?
>
> What a God awful feature. Honestly, "what were they sinking about?" People
> who explained that C# is cool - please explain this one.

Looks like

using(Foo x = new Foo()) {
     // do stuff
}

It's basically equiv of

{
    auto x = new Foo();
    scope(exit) foo.Dispose;
    // do stuff
}

So it saves a little typing but is capable of less.  scope(exit) is way cooler.
Python has a similar feature to C#'s using.  In Python it's called
"with".  http://effbot.org/zone/python-with-statement.htm

--bb



More information about the Digitalmars-d mailing list