【发布时间】:2011-10-10 04:11:42
【问题描述】:
我有一个具有范围参数的模板统计类。
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())
有没有办法实现这样的目标?
【问题讨论】:
标签: c++ templates numeric-limits