On Fri, 19 Nov 2010 09:14:07 -0500, bearophile <[email protected]>
wrote:
Steven Schveighoffer:
I've made suggested changes, please review again.
Good, thank you.
Just a note: a DIP is a public document so it's better to encourage good
idioms inside it. "null" to represent empty arrays/strings is a bad
practice, so instead of this:
void writeTo(scope delegate(in char[] data) sink, string format =
null) const
{
formattedWrite(sink, "(%s, %s)", first, second);
}
I suggest you to write something like:
void writeTo(scope delegate(in char[] data) sink, string format="")
const
{
formattedWrite(sink, "(%s, %s)", first, second);
}
Who said setting an array to null is bad practice? I disagree. null is a
better way to represent it, because it sets both the ptr and the length to
0, while "" only sets the length to 0.
char[] arr = "";
assert(arr == null); // passes
assert(arr is null); // fails
I'd rather use a value that also allows code like:
if(format is null)
{
// default to decimal
format = "d";
}
-Steve