У меня есть класс статистики шаблона, который имеет параметры диапазона.Использование 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 :: lower()'. –