1
최소 및 최대 값 유형을 그룹화하고 기본으로 에서 초기화하는 일반 D 구조를 작성한 사람이 있습니까? 나는 최소 및 최대가 T.max에 초기화 기본하려는일반 제한 유형
뭔가
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.min는 그래서 그들은 은
x = min/max(x, ...)
논리에 대한 준비가되어 있습니다. 그러나 위의 코드는 init() 함수가 호출되지 않고 I 이 이유를 모르기 때문에 작동하지 않습니다. 그리고 기본 멤버 초기화 을 사용할 수 없습니다. 왜냐하면 이
SysTime
과 같은 유형에서도 작동하기를 원하기 때문입니다. min 및 max는 런타임에만 알 수 있습니다.
나는 std.datetime.span
을 알고 있지만 일반적이지 않습니다.
아이디어 누구?
은 참조 : http://forum.dlang.org/thread/[email protected]#post-dwuiknzqzmjkefnwmnio:40forum.dlang.org
업데이트 :
난 그냥 T
가 SysTime
때 내가 std.datetime.Interval
을 사용하는 것을 읽었다. 이것은 단순화합니다.