On 2011-06-10 17:04:42 -0400, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> said:
On 6/10/11 3:34 PM, Michel Fortin wrote:
If you want something to be used everywhere and it is not an
implementation detail, make it part of the language. Implementing what
sounds should be a language feature through a template hack and putting
it the standard library is not going to make people feel good about the
language, it'll remind them of what the language is missing.
The problem with the "hack" label is that it instantly decreases the
level of the conversation. It's the "N" word of programming.
A hack is something that works even though it's ugly and generally
cause people to call for something better. I'm not opposed to using
hacks as long as they're well-encapsulated and not too fragile, but in
this case I find the encapsulation is leaky since you need to litter
your code with Flag!"" everywhere.
I don't want a universal thing, I want to solve a simple problem: there
are 7 yes/no enums in Phobos, and probably some more to come. Flag
solves that problem in a reasonable way. This is pretty much it.
I disagree that Flag is a reasonable solution. It works, but it's ugly
and verbose. I understand it's tiresome to create an enum for every
parameter, but asking all users to write Flag!"" everywhere is going to
be tiresome everywhere else, which is hardly an improvement.
I also think you are narrowing the problem a little too much. The
problem exists everywhere there is a boolean parameter. This includes
phobos, druntime, and potentially any other D library. Should Flag!""
become the recommended way to make boolean parameters in D? And should
creating a separate Ddoc version of the function signature become the
recommended way to document boolean parameters? If so, I think it'll
reflect badly on the language.
--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/