У меня есть функция, которая принимает необязательный параметр расстояния dist
, но мой алгоритм работает с квадратами расстояний. Если пользователь не указывает никакого значения, я хочу, чтобы dist
было как можно большим числом.
Result foo(double dist = std::sqrt(std::numeric_limits<double>::max())) const;
Безопасен ли приведенный выше код или он взорвется из-за ошибок округления? Было бы лучше использовать что-то (даже) более уродливое, например
Result foo(double dist = std::sqrt(std::numeric_limits<double>::max() - 100)) const;
std::numeric_limits<double>::infinity
? Он вернет, что оно больше, чем любое число в сравнении, и оно не станет хуже, когда вы возведете его в квадрат. - person dratenik   schedule 30.10.2020std::numeric_limits<double::infinity
. Это именно то, что мне нужно тогда. Спасибо! - person Touloudou   schedule 30.10.2020