LINUX.ORG.RU

nan(0)

 ,


0

2

Можно так делать или нет?

★★★★★

Последнее исправление: peregrine (всего исправлений: 1)

Ответ на: комментарий от PPP328

Оно. Cppcheck говорит что там Null pointer dereference, однако один из разработчиков считает что всё нормально.

peregrine ★★★★★
() автор топика
Ответ на: комментарий от peregrine

Даже для C написано:

The call nan(NULL) is equivalent to the call strtod(«NAN», (char**)NULL);

Хотя man nan:

The argument tagp is used in an unspecified manner.
И там про NULL не говорят.

Но похоже, что это разрешено. Тем не менее заменить 0 на "" не должно быть проблемой, чтобы предупреждение убрать.

xaizek ★★★★★
()
Ответ на: комментарий от RazrFalcon

Не думаю. Кода там очень уже много написано и людей много трудится. Спасибо в общем всем.

peregrine ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Такое поведение описано в стандарте?

Я так полагаю, в ваших краях гугель не ловится :)

According to the IEEE standard, NaN values have the odd property that comparisons involving them are always false. That is, for a float f, f != f will be true only if f is NaN.

Но что бы не наступить случайно на грабли, лучше использовать c++11 и bool isnan(arg) из cmath.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

в ваших краях гугель не ловится

Я даже не соображу как такое загуглить. Такой фичи не знал. Всегда использовал isnan.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Я даже не соображу как такое загуглить.

Я искал по c++ nan.

Такой фичи не знал.

Нельзя все знать, но можно узнавать по мере необходимости. Это вполне нормально.

Всегда использовал isnan.

Это правильно.

andreyu ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.