ICU Versioning Design
Overview
The current solution for versioning in ICU using #define causes renaming of symbol names unrelated to ICU, breaking the clients code.

Options

The options that were discussed :
 


Proposed course of action

Check all IBM clients' platforms (OS390, AS400, AIX) and compilers like
GCC, HPUX, CXX, SUN's compilers for namespace support.
 
 Support available Support not available on certain platforms
Create namespace for all c++ classe Rename all C++ classes
Put c++ rename undef flags if C++ Modify header files and CPP files
Put namespace in the header  Document and change userguide to reflect changes
 Conduct tests on compiler support Compile files with #ifdef

 

Current course of action

After initial investigation on compilers and namespaces it turned out that AIX does not  support namespaces. Since AIX is one of the main IBM platforms,
namespaces solution cannot be used.
 
Rename all C++ classes
Modify header files and CPP files
Document and change userguide to reflect changes
Compile files with #ifdef