我有一个具有范围参数的模板统计类。
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())
有没有办法实现这样的目标?