NaN среди чисел с плавающей точкой ломает обычный линейный порядок при сравнении. Такой случай описывает std::partial_ordering.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpOrPt 368 of 696 menu
◀ ▶

Частичный порядок в C++

Особое значение NaN среди чисел с плавающей точкой ломает обычный линейный порядок при сравнении.

Такой случай описывает std::partial_ordering. Признак «ни равно, ни меньше, ни больше» проверяют через функцию std::is_neq. Запишем сравнение обычного числа с NaN и выведем результат:

#include <compare> #include <cmath> #include <iostream> double plain = 2.0; double quiet = std::nan(""); auto order = plain <=> quiet; std::cout << std::is_neq(order) << "\n";

На экран попадет 1: порядок помечает пару как неупорядоченную относительно обычного сравнения на прямой.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить