Почему у нас нет <cstdfloat> в C++?

Почему в C++ нет заголовка для чисел с плавающей точкой, как у для целых чисел?

РЕДАКТИРОВАТЬ:

Под я подразумеваю заголовок, который предоставляет typedefs для float и double. Очень похоже на qreal typedef в Qt. Надеюсь, мой вопрос теперь ясен.

2 ответа

Решение

Часто приложению требуется ровно 16 битов для целого числа, скажем, для битового поля, но наличие ровно 16 битов для числа с плавающей точкой является бесполезным. Управлять битами в целых числах легко, поэтому хорошо иметь ровно 16. Манипулирование битами с плавающей точкой требует приведения его к целому числу, делая float16 Тип довольно посторонний.

Точно так же полезно иметь целочисленный тип, способный хранить (а также выполнять математические операции) указатели, но кому нужно преобразовывать значение указателя в значение с плавающей запятой, затем выполнять математическое вычисление с плавающей запятой и преобразовывать его обратно. на указатель?

Дело в том, что большая часть функциональности в stdint.h (или же cstdint для C++, кроме этого stdint.h является заголовком C99 и технически не является частью C++) не относится к значениям с плавающей запятой.

Возможно, вы ищете <float.h> и его брат C++ <cfloat> вместо?

Другие вопросы по тегам