Licensed Materials - Property of IBM
"Restricted Materials of IBM"
IBM Informix Client SDK 2.81
© Copyright IBM Corporation 2003 All rights reserved.
IBM Informix Object
Interface For C++
Version: 2.84
I. Overview
III. New Features
IV. C++ Compiler Interpretation of Long Doubles
V. Linking To The Current Compiler
VI. Known Problems
VII. Fixed Problems
The purpose of these release notes is to make you aware of special actions that are required to configure and use IBM Informix Object Interface for C++ on your computer. This file also describes new features and feature differences from earlier versions of this product and other IBM Informix products and how these differences affect current products. In addition, this file contains information about known bugs and their workarounds.
This release notes document is not intended to be all-inclusive; it should be used as an addendum to the IBM 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.
This version of the Object Interface for C++ has been tested with the following IBM Informix database servers:
There are no new features in this release of
CSDK 2.81 for Object Interface for C++ .
Object Interface for C++ provides data type conversion functions in the value interface ITConversions to enable conversion of C++ type long double. The intent is to permit fetching floating point values into C++ long double variables. However, the Client SDK does not currently allow for conversion of long double values into Informix decimal or float types.
Thus, 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:
The following table compares
support for the ANSI C++ draft standard referenced above among several versions
of Sun C++ compilers. The table shows how the different compiler versions
evaluated the expression (dasd == d). If the expression evaluates to FALSE, the
values are not equal.
|
|
Sun C++ 6.01(2001) |
TRUE (values are equal) |
|
The Version 2.84 Object Interface for C++ is compiled with Sun WorkShop C++ Compiler, Version 6.0. C++ applications using the Version 2.84 Object Interface for C++ should also be compiled with Sun WorkShop C++ Compiler, Version 6.0 or greater.
This means that if you have a Object Interface for C++ legacy application compiled and linked with a pre-6.0 C++ compiler, you must re-compile and re-link it with 6.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++ 6.0 Collection documentation at http://docs.sun.com and the SunOS CC.1 man pages.
There are no known problems in this release.
To check the problems fixed in this release of fixed problems of Object Interface for C++, please refer to Defects.html or Defects.txt documents.
© Copyright IBM Corporation 2003 All rights reserved