"Nick Sabalausky" <a@a.a> wrote in message news:istv62$2skn$1...@digitalmars.com... > "Andrei Alexandrescu" <seewebsiteforem...@erdani.org> wrote in message > news:isttf6$2oub$1...@digitalmars.com... >> On 6/10/11 1:52 PM, Robert Clipsham wrote: >>> >>> foo(param: true, otherParam: false); >>> foo(Flag!"param".yes, Flag!"otherParam".no); >>> >>> I don't know about you, but I find the former is far more legible. I'd >>> hate to see my code littered with Flag!"something". >> >> I agree it's more legible. The crucial question is whether the added >> legibility warrants adding a new feature to the language. >> > > I really see Flag more as a way to try to rationalize avoiding adding > named parameters to the language. > > And yes, the legibility of "foo(Flag!"param".yes, Flag!"otherParam".no);", > combined with the frequency of need for such a thing, and the complete > inability of Flag to address the problem for anything but bool, the > inability to document it separately (as Jonathan Davis pointed out), is > all definitely much much more than enough to warrant adding a > tried-and-proven feature that's become standard in damn near every other > modern language. >
Regarding "the complete inability of Flag to address the problem for anything but bool", how are we going to wind up papering over that? Like: box(Int!"x"(3), Int!"y"(4), Int!"width"(100), Int!"height"(150), Int!"depth"(1), UInt!"color"(0xFFAA77)); ?