On 11/06/2011 20:59, Andrei Alexandrescu wrote:
On 6/11/11 2:12 PM, Robert Clipsham wrote:
....
* No ugly templates
* Self documenting
* No overhead (dmd can inline it to myFunc(true, false))
* Caller decides if they want it

// Generate document in nook format
generatePdf("doc.pdf", Flag.nook);


Andrei


I'd call this a documentation issue. It's obvious you're passing true to the function. Of course, if you want to mitigate this somewhat, something like this could work:

struct FuncFlag(alias func)
{
    // See code from above, but use typeof(&func).stringof to get
    // a list of parameter names and make sure the passed name is valid
    // of course, you can't check position, but the only way to get
    // around that is named parameters or some sort of compiler support
}

alias FuncFlag!generatePdf PdfFlag;

// This now fails to compile
generatePdf("doc.pdf", PdfFlag.nook);

--
Robert
http://octarineparrot.com/

Reply via email to