On Sat, 07 Apr 2012 20:03:25 -0400, Jonathan M Davis <jmdavisp...@gmx.com>
wrote:
On Saturday, April 07, 2012 15:59:57 Andrei Alexandrescu wrote:
Whenever I use TickDuration.to, I need to add the pesky second argument,
e.g. TickDuration.to!("nsecs", uint). Would a default make sense there?
Well TickDuration.nsecs is a wrapper for TickDuration.to!("nsecs",
long"),
TickDuration.msecs is a wrapper for TickDuration.to!("msecs, long"),
etc. So,
that's basically how defaults were added. I question that it makes sense
to
add defaults to the to function itself - though having long chosen as the
default doesn't really help you, since you'll either have to be explicit
like
you have been or cast using the default version.
I think what Andrei is asking for is to change this:
T to(string units, T)() @safe const pure nothrow
Into this:
T to(string units, T = long)() @safe const pure nothrow
Which I don't think will hurt anything.
An additional annoyance that I would think is solved is you always have to
include the parentheses. i.e.:
td.to!"msecs"()
vs.
td.to!("msecs", long)();
-Steve