2009-12-31 12 views
5

¿Por qué C++ no tiene < cstdfloat> encabezado para flotadores como si tuviera < cstdint> para enteros?¿Por qué no tenemos <cstdfloat> en C++?

EDIT:

Por < cstdfloat> quiero decir cabecera que proporciona typedefs para float y double. Al igual que q typedef qreal en Qt. Espero que mi pregunta sea clara ahora.

+2

en realidad no es parte de Standard C++ –

+0

¿Qué es específicamente de cstdint que le gustaría para las carrozas? –

+2

@Neil Se agregará en C++ 0x aunque – dvide

Respuesta

6

A menudo, una aplicación necesita exactamente 16 bits para un entero para, por ejemplo, un campo de bits, pero tener exactamente 16 bits para un flotador es inútil. La manipulación de bits en un número entero es fácil, por lo que tener exactamente 16 es bueno. La manipulación de bits en un flotador requiere convertirlo en un entero, por lo que un tipo float16 es bastante extraño.

De la misma manera, tener un tipo integral capaz de almacenar (y también realizar matemática) punteros es útil, pero que necesita convertir un valor de puntero a un valor de coma flotante, luego realizar matemática de coma flotante, luego convertirlo de nuevo a un puntero?

El punto es que la mayoría de la funcionalidad en stdint.h (o cstdint para C++, excepto que stdint.h es una cabecera C99 y no es técnicamente parte de C++) no se aplica a los valores de coma flotante.

2

¿Estás buscando <float.h> y su hermano C++ <cfloat> en su lugar?

+0

es una cosa diferente. Estoy hablando de encabezado que proporciona typedefs para float y double. Al igual que q typedef qreal en Qt. Espero que entiendas mi pregunta ahora. – missingfaktor

+0

Luego debe especificar eso en su pregunta. Tu pregunta es increíblemente vaga. –

+0

@Rosenfield: Lo siento. Editado mi pregunta ahora. – missingfaktor

Cuestiones relacionadas