Ответ в основном такой: «Потому что предложение еще не интегрировано в стандарт»
P0533 Предлагает то, о чем вы просите, но не вошло в C ++ 20.
Одна из задержек заключается в том, что, возможно, это предложение немного велико ... некоторым функциям в <cmath>
или <cstdlib>
разрешено устанавливать глобальные коды ошибок, что усложняет все "constexpr
все "предложение" *
Я не думаю, что с этими классификационными функциями должна быть какая-то проблема; std::isnan
и его родственник std::fpclassify
определены так, чтобы вести себя идентично макросам C isnan
и fpclassify
соответственно. Это нужно будет немного изменить.
* (кроме: p2043 «Не constexpr
все вещи» здесь косвенно уместно, но речь идет только о метапрограммировании)