Informix Online Documentation |
Version: 2.82
This release notes document is not intended to be all-inclusive; it should be used as an addendum to the INFORMIX-Object Interface for C++ Programmer's Guide, which provides comprehensive information about product features and product behavior.
This release notes document is for system
administrators who install the Object Interface for C++ and for developers
who use the Object Interface for C++ to create client applications.
Thus, Informix Object Interface for C++ applications should always ensure that any floating literal passed to ITConversions::ConvertFrom(long double val) is within the double range. Otherwise, ConvertFrom(long double val) will return FALSE for value objects that contain SQL MONEY, FLOAT, and SMALLFLOAT values.
Object Interface for C++ is written with the assumption that a floating literal without the ANSI C++ specified suffixes l or L (example: 12.988 instead of 12.988L) assigned to a long double variable will be treated by the C++ compiler as a long double. This assumption agrees with the ANSI C++ Draft Standard (Doc No: X3J16/94-0027, WG21/N0414, 25 January 1994), which states that the type of a floating literal is double unless explicitly specified by a suffix. The suffixes f and F specify float; the suffixes l and L specify long double. Thus, the suffix l or L must be applied to a floating literal in order for it to be interpreted by the C++ compiler as a long double value.
Different versions of the Sun C++ compiler applied the ANSI C++ standard as it existed at the time of the compiler development and release. For example, Sun C++ 4.1 conforms to the ANSI standard described above, whereas pre-4.1 Sun C++ compilers always treated all floating literals, with or without the l and L suffixes, as long double values if they were assigned to a long double variable. The following C++ code example demonstrates assignment of a floating literal to a long double variable, casting to a double, and comparison between the double and long double:
This means that if you have a Object Interface for C++ legacy application compiled and linked with a pre-5.0 C++ compiler, you must re-compile and re-link it with 5.0 Sun Workshop C++. Otherwise, the application may fail with runtime link errors due to binary incompatibilities between pre-5.0 applications and 5.0-compiled shared libraries.
For more information, see the Sun WorkShop
Compiler C++ 5.0 Collection documentation at http://docs.sun.com and the
SunOS CC.1 man pages.
Bug Number | Description |
134604 | THE C++ API DOES NOT RETURN THE FULL ERROR WHEN A DATABASE DOESN'T EXIST, ONLY THE ISAM ERROR. |
144384 | C++ API ERROR HANDLER INVOCATIONS FOR ERRORS AND WARNINGS ARE NOT CLEARED FROM ONE ERROR TO THE NEXT AND ERRORS ARE REPORTED TWICE FOR WARNINGS & ERR |
145151 | ATTEMPTING AN INSERT INTO A CHAR COLUMN DEFINED AS CHAR(N) WHERE N>1 USING A PREPARED STATEMENT ONLY INSERTS THE FIRST CHARACTER |
145163 | INSERTING A STRING IN A CHAR-COLUMN JUST INSERTS THE FIRST CHARACTER |