один происходит в определенных крайних случаях. Лечится так же ... в основном. Иногда немного сложно различить их, когда такое различие желательно.
я есть строка:
std::uniform_real_distribution<T> distribution(std::numeric_limits<T>::lowest(),
std::numeric_limits<T>::max());
Компилируется, но вылетает при Debug (VS 2017CE). Я предполагаю, что согласно документацииstd::uniform_real_distribution
:
Требует, чтобыa ≤ b
а такжеb-a ≤ std::numeric_limits<RealType>::max()
когда мойb
является::max()
а такжеa
является::lowest()
, условие:
b-a ≤ std::numeric_limits<RealType>::max()
не выполняется какb-a
в основном удваивает значениеmax
, Есть ли способ обойти это так, чтобы я оставил такой широкий диапазон чисел?::min()
работает отлично, но пропускает отрицательные значения. Проблема возникает только для плавающих чисел.