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

Reply via email to