> "Jarrett Billingsley" <jarrett.billings...@gmail.com> wrote in message > news:mailman.901.1236111433.22690.digitalmar...@puremagic.com... > On Tue, Mar 3, 2009 at 1:50 PM, Walter Bright > <newshou...@digitalmars.com> wrote: > > Tomasz Sowiński wrote: > >> > >> Ideas for features based on the with. > >> > >> The with can make calling functions with enum arguments sexier. So > >> instead > >> of: > >> auto d = dirEntries(".", SpanMode.breadth); > >> > >> you could say: > >> auto d = dirEntries(".", breadth); > >> > >> by declaring the function as: > >> dirEntries(string path, with SpanMode mode); // "with" does the trick > > > > It looks nice, but has a subtle and disastrous problem. In D, arguments > > are > > fully resolved *before* overloading is done. If some of the overloads > > have > > with declarations, then there's a nightmarish problem of trying to mix > > overloading and argument resolution together. > > What about the feature you mentioned at the D con, about being able to > use enums without the enum name? Or will/would that only be for > things where it's really obvious, like switch statements?
Unless that was only for things like switch statements, I would hate that. I've used enums in languages that worked that way, and I found it to be such a problematic namespace-clutterer that in those languages I always hack up my enum definitions like this: enum Color { Color_Red, Color_Blue, Color_Orange, // etc... } Which is a style that I've always considered an ugly and kludgey, but unfortunately necessary, substitute for manditory enum names.