Hi all,

I just ported Version 2.2.0 to OS/2, using the VisualAge C++ V4.0 compiler. Since most 
OS/2 developers are using VisualAge C++ 3.0, 
OpenWatcom or gcc, I'm currently working on a build environment for VisualAge C++ 3.0 
and I'm almost done ;-)

But there are some problems with templates used within some source-files and the way 
VACPP 3.0 handles them. Normally you only 
include the declaration of the template stored in the .HPP file. Then the compiler 
generates a corresponding .CPP and tries to include a 
.C within that generated file, to get the definition of the template. For most of the 
templates this works just fine but for "newer" files, there is 
no .C file anymore instead the definition is also stored within a .CPP file. 

Example:
The template class "RefArrayOf" is declared in "RefArrayOf.hpp" and the definition is 
in "RefArrayOf.c" This one works fine!!

The template class "DOMDeepNodeListPool" is declared in "DOMDeepNodeListPool.hpp" and 
the definition is in 
"DOMDeepNodeListPool.cpp". This one produces unresolved externals during linking!!

The only, very annoying, workaround for this is to copy DOMDeepNodeListPool.cpp to 
DOMDeepNodeListPool.c and explicitly exclude 
the CPP-file from the compilation process. Now I have to search every CPP file, to see 
if it's a template definition and if so, i have to copy 
and exclude it from the compilation process. 

Why has this changed? I think this is a Bug, because in each template HPP file, there 
is a statement at the end that tries to include the 
corresponding .C file and this will not compile if XERCES_TEMPLSINC is not defined 
because the .C can not be found.

Any help would be appreciated

regards
Joachim


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to