BDE 4.14.0 Production release
|
Macros | |
#define | BDLDFP_DECIMALPLATFORM_SOFTWARE 1 |
#define | BDLDFP_DECIMALPLATFORM_SNPRINTF_BUFFER_SIZE 256 |
#define | BDLDFP_DECIMALPLATFORM_INTELDFP 1 |
#define | BDLDFP_DECIMALPLATFORM_BININT 1 |
#define | BDLDFP_DECIMALPLATFORM_COMPILER_ERROR BSLMF_ASSERT(false) |
Functions | |
BSLMF_ASSERT (false) | |
Variables | |
BDLDFP_DECIMALPLATFORM_COMPILER_ERROR | |
Provide decimal floating-point platform information macros.
IntelDFP
libraryThis component provides a suite of preprocessor macros that identify and define platform-specific compile-time attributes that are related to decimal floating-point support. The macros provided by this component are defined to the be non-zero (true) when enabled on a given platform, and are undefined on platforms where they are not enabled. Some macros are implentation details, providing platform-specific information that is not useful outside of the BDE implementation.
Only one of these macros will be defined any supported platform:
BDLDFP_DECIMALPLATFORM_C99_TR
- Full ISO/IEC TR 24732 support with library.
BDLDFP_DECIMALPLATFORM_INTELDFP
- Using bdl+inteldfp as emulation
Only one of these macros will be defined on any supported platform:
BDLDFP_DECIMALPLATFORM_HARDWARE
- Hardware support for at least one type.
BDLDFP_DECIMALPLATFORM_SOFTWARE
- Software emulation for all types
There is a chance that the endianness of integers and decimal floating point are not the same as those of integers; therefore we provide two macros here to support implementation of endianness conversions.
BDLDFP_DECIMALPLATFORM_BIG_ENDIAN
- big endian storage
BDLDFP_DECIMALPLATFORM_LITTLE_ENDIAN
- little endian storage
There are two IEEE-754 sanctioned encodings for the significand: densely packed decimal and binary integer significand. We provide two macros here to support implementation of encoding conversions.
BDLDFP_DECIMALPLATFORM_DPD
- Densely Packed Decimal significand representation
BDLDFP_DECIMALPLATFORM_BININT
- Binary Integer significand representation
These macros may or may not be present, depending on the platform. They are not meant for use outside of the Decimal Floating Point implementation; Therefore using them in your code will result in undefined behavior.
BDLDFP_DECIMALPLATFORM_SNPRINTF_BUFFER_SIZE
- max chars to print Dec128
BDLDFP_DECIMALPLATFORM_C99_QNAN32
- The expression to get a quiet NaN of BDLDFP_DECIMALPLATFORM_C99_QNAN64
the type the number postfix refers to. BDLDFP_DECIMALPLATFORM_C99_QNAN128
BDLDFP_DECIMALPLATFORM_C99_SNAN32
- The expression to get a signaling NaN BDLDFP_DECIMALPLATFORM_C99_SNAN64
of the type the number postfix refers BDLDFP_DECIMALPLATFORM_C99_SNAN128
to.
In this section, we show the intended usage of this component.
#define BDLDFP_DECIMALPLATFORM_BININT 1 |
#define BDLDFP_DECIMALPLATFORM_COMPILER_ERROR BSLMF_ASSERT(false) |
#define BDLDFP_DECIMALPLATFORM_INTELDFP 1 |
#define BDLDFP_DECIMALPLATFORM_SNPRINTF_BUFFER_SIZE 256 |
#define BDLDFP_DECIMALPLATFORM_SOFTWARE 1 |
BSLMF_ASSERT | ( | false | ) |
BDLDFP_DECIMALPLATFORM_COMPILER_ERROR |