我有一個模板統計類有範圍參數。使用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;
}
我想把最大和最小允許值的默認值,但最小值是不同的浮點和整數類型。
通常情況下,我可以寫
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()'。 –