Возможно, вы захотите переосмыслить свой дизайн.Что вы пытаетесь сделать с вашим limitStats
, который std::numeric_limits
не предоставляет?
Не повторяйте плохого дизайна std::numeric_limits
.Например, std::numeric_limits<double>::min()
ужасно неправильно назван.Минимальное двойное является аддитивной обратной величиной максимального двойного.std::numeric_limits
- это злоупотребление нотацией и использование шаблонов.На мой взгляд, конечно.
Ваша идея для min
неверна.Подумайте о вашем значении по умолчанию в отношении limitStats<unsigned int>
.
При значениях по умолчанию ваш range
недопустим для целых чисел со знаком.Для неподписанных целых чисел реплицируется max
, если вы решите проблему с limitStats<unsigned int>::min
.Для типов с плавающей запятой он либо недопустим, либо реплицирует max
, в зависимости от того, что вы подразумеваете под limitStats<floating_point_type>::min
.
Имеет ли смысл даже использовать значения по умолчанию?У вас даже не возникнет этого вопроса, если вы просто не предоставите значения по умолчанию и сделаете конструктор по умолчанию закрытым / не реализованным.