これがしたかっただけなんだけど、ずいぶん大げさになってしまった。
// 型の最大値
template <typename X> struct max_of {
typedef typename SelectNegativePresentation
<X, limits_of_u<X>, limits_of_s2<X>, limits_of_s1<X>, limits_of_sa<X>
>::Result Selected;
static X value() { return Selected::max(); }
};
// 型の最小値
template <typename X> struct min_of {
typedef typename SelectNegativePresentation
<X, limits_of_u<X>, limits_of_s2<X>, limits_of_s1<X>, limits_of_sa<X>
>::Result Selected;
static X value() { return Selected::min(); }
};
ちなみに、シフトによる桁あふれがあるのでg++でコンパイルするとご丁寧に警告を出してくれるのだけど、これが3000行近かったりするw
0 件のコメント:
コメントを投稿