The Sweet With
Nick Sabalausky
a at a.a
Tue Mar 3 12:32:39 PST 2009
> "Jarrett Billingsley" <jarrett.billingsley at gmail.com> wrote in message
> news:mailman.901.1236111433.22690.digitalmars-d at puremagic.com...
> On Tue, Mar 3, 2009 at 1:50 PM, Walter Bright
> <newshound1 at 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.
More information about the Digitalmars-d
mailing list