っていうか
sign n | n > 0 = 1 | n == 0 = 0 | n < 0 = -1
↓↓↓↓↓↓↓↓↓↓
template<class Integer, class = disable_if<less_equal<Iteger, zero> >::type> struct sign : public int_<1>{ }; template<class Integer> struct sign<Integer, enable_if<equal_to<Integer, zero> >::type> : public int_<0>{ }; template<class Integer> struct sign<Integer, eable_if<less<Integer, zero> >::type> : public int_<-1>{ };
・・・ダメ?