On 10/9/10 15:54 CDT, Simen Kjaeraas wrote:
Andrei Alexandrescu <[email protected]> wrote:
* "this(string msg, string file = __FILE__, size_t line = __LINE__,
Throwable next = null) nothrow" -> the __FILE__ and __LINE__ are
useless (they are yours, not your caller's). You need to make them
template parameters to work, see other places in Phobos. At least
that's what I recall. Walter?

You're wrong, they are replaced at call point.

Thanks for the correction. For enforce() I advocated the hack to Walter in template arguments, and he introduced it. Now I see he introduced it in two places. FWIW I think this is a welcome irregularity in default args as well; you almost never care about the callee's __FILE__ and __LINE__ in a default argument.

long convert(TUnit from, TUnit to)(long);

Couldn't this be more succinct by copying std.conv.to's system?

i.e:
assert( convert!years( months( 24 ) ) == 2 );

This would be the case if we go with separate types for duration units (years, months,...), but not if we use long throughout.

My thought for simplification: go with one 128-bit Duration (which is now JointDuration) and then have it offer @properties such as e.g. years() returning double.


Andrei
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to