Ice provides two distinct C++ mappings:

This chapter describes these two mappings in detail. When the same rule applies to both mappings, this rule is simply described as part of the "C++ mapping". 

slice2cpp, the Slice-to-C++ translator, always generates code for both mappings, and C++ headers files provided by Ice, such as Ice/Ice.h and IceGrid/IceGrid.h, can be used with either mapping.

The C++98 mapping is provided for backwards compatibility, and will not be included in future releases. If you are starting a new project with Ice, please use the C++11 mapping. If you are upgrading an existing application, you should consider upgrading your code to use the C++11 mapping.

Selecting the C++98 Mapping

The default Ice for C++ mapping is currently C++98, and you do not need to do anything special to select this mapping.

The Ice C++11 and Ice C++98 libraries are built from the same source code, in ice/cpp. The resulting C++ libraries are nevertheless language mapping specific: libIce++11.so is for the Ice C++11 mapping, while libIce.so is for the Ice C++98 mapping.