範囲パラメーターを持つテンプレート統計クラスがあります。
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;
}
最大許容値と最小許容値のデフォルト値を入れたいのですが、最小値は浮動小数点型と整数型で同じではありません。
普通に書ける
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())
このようなことを達成する方法はありますか?