> "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&#324;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.


Reply via email to