是否有人制作了一個通用的D結構,它們組合在一起最小 和類型的最大值和默認值 - 以 正確的方式初始化它們?通用限制類型
喜歡的東西
alias Pair(T) = Tuple!(T, T);
struct Limits(T)
{
/* TODO: Fix purity of this by fixing Bytes.value() */
auto init() @trusted /* pure */ nothrow { return tuple(T.max, T.min); }
alias _minmax this;
Pair!T _minmax;
}
auto limits(T)() { return Limits!T(); }
unittest {
Limits!int x;
dln(x);
}
我想要的最小值和最大值爲默認初始化T.max,T.min所以他們 是爲x = min/max(x, ...)
邏輯準備。但是上面的代碼 不起作用,因爲init()函數未被調用,並且我不知道爲什麼。而且我不能使用默認成員初始化 ,因爲我想要Limits
也可以與類型如SysTime
一起使用,當min和max只在運行時才知道。
我知道std.datetime.span
但它不是通用的。
想法任何人?
參見:http://forum.dlang.org/thread/[email protected]#post-dwuiknzqzmjkefnwmnio:40forum.dlang.org
更新:
我剛纔讀,我應該使用std.datetime.Interval
時T
是SysTime
。這簡化了事情。