私は、範囲パラメータを持つテンプレート統計クラスを持っています。numeric_limitsを使用してパラメータ値をデフォルト値に設定する
template <typename T>
class limitStats
{
public:
limitStats(T mx, T min) :
max(mx),
min(mn),
range(mx-mn)
{;}
private:
const T max;
const T min;
const T range;
}
Iは最大値と最小許容値のデフォルト値を入れたいのですが、最小値は浮動小数点型と整数型のために同じではありません。
通常、私は
T min_val = numeric_limits<T>::isinteger ? numeric_limits<T>::min() : -numeric_limits<T>::max();
を書くことができます私は
limitStats(T mx = std::numeric_limts<T>::max(),
T mn = numeric_limits<T>::isinteger ? numeric_limits<T>::min() : -numeric_limits<T>::max())
はこのような何かを達成する方法はありデフォルトパラメータとして使用することはできませんことを発見しましたか?
これはC++ 0xでも 'std :: numeric_limits :: lowest()'と表示されます。 –